【发布时间】:2021-05-08 22:22:08
【问题描述】:
如何在实体框架核心中将此 sql 查询转换为 linq?
Select a.Id,a.Url,c.Title,a.ParentId,b.totalSubCats
From [Tbl_Menu] As a
LEFT OUTER JOIN
( Select ParentId, Count(*) As totalSubCats From [Tbl_Menu] Group By ParentId ) As b
On a.Id=b.ParentId
LEFT OUTER JOIN [Tbl_Menu] As c On a.Id = c.Id
ORDER BY a.Id
我们在Menu_Tbl 中有这些专栏
Id、Url、Title、Description、ParentId
对于Left Join,我写了这个查询但无法运行
var query = (from m1 in _context.Menu_Tbl
join m2 in _context.Menu_Tbl on m1.Id equals m2.Id
into m3 from m in m3.DefaultIfEmpty() select m1);
【问题讨论】:
-
你读过How to Ask吗?展示你的尝试,Stack Overflow 不是代码翻译服务。
-
显示您尝试过的内容。对赞成者:我希望他们剥夺你的投票权。
-
我绝对是来帮忙的,请尝试查看我的个人资料。同样,您需要阅读How to Ask。我们对提问者有某些期望,而您却没有表现出来。如果您的代码“无法运行”,请解释发生了什么。它不编译,它会抛出运行时异常吗?当您研究这些错误时,您发现了什么?
-
@CodeCaster 必要的一切都已完成。我有一个需要重写为实体的 sql 查询。我已经在我的问题中包含了我在项目中所做的事情。
-
SQL 查询无法转换为 LINQ。充其量您可以编写一个翻译成类似 SQL 的 LINQ 语句。这需要了解类模型和映射,因为应该使用导航属性而不是 LINQ 的
join语句。这就是为什么这个问题缺乏背景信息。
标签: c# sql entity-framework linq