实体框架查询嵌套查询
本文关键字:查询 嵌套 框架 实体 | 更新日期: 2023-09-27 18:11:11
我是实体框架的新手,我试图将以下查询转换为正确的函数调用。
Select Distinct a.nodeId FROM
(SELECT *
FROM reportContents
Where fitId = '29' and reportId =
(select max(reportId)
from reportContents
where fitId = '29')
) a Where (a.nodeId IS NOT NULL)
我知道这个查询做我想要的,但我不知道如何将其转化为实体框架!
这是我的尝试。
var prevSelectedNodes = db.reportContents.Where(
f => f.fitId == id).Select(
f => f.nodeId).Distinct().ToList();
我需要在where调用中添加一个。select()。然而,这种事情似乎是不可能的
提前感谢!
因为LINQ不能让两个lambda表达式嵌套。您可以通过两个请求来实现:
var maxReportId = db.reportContents.Where(r => r.fitId = "29").Max(r => r.RepordId);
var result = db.reportContents.Where(r => r.fitId == "29" && r.reportId == maxReportId && r.nodeId != null).Select(a => a.nodeId).Distinct().ToList() ;