我正在尝试使用 LINQ to Entities 查询重现 SQL 查询。以下 SQL 工作正常,我只是不知道如何在 LINQ 中执行此操作。我今天尝试了几个小时,但我只是错过了一些东西。
SELECT
h.ReqID,
rs.RoutingSection
FROM ReqHeader h
JOIN ReqRoutings rr ON rr.ReqRoutingID = (SELECT TOP 1 r1.ReqRoutingID
FROM ReqRoutings r1
WHERE r1.ReqID = h.ReqID
ORDER BY r1.ReqRoutingID desc)
JOIN ReqRoutingSections rs ON rs.RoutingSectionID = rr.RoutingSectionID
编辑***
在查看了其他示例(包括 Miki 提供给她的示例)之后,我得以完成这项工作。这是对我有用的代码:
首先,我创建了一个名为 route 的查询来保存我需要加入的最高记录
var route = (from rr in context.ReqRoutings
where rr.ReqID == id
orderby rr.ID descending
select rr).Take(1);
然后我可以加入我的申请表和 ReqRoutings 查找表
var header = (from h in context.ReqHeaders
join r in route on h.ID equals r.ReqID
join rs in context.ReqRoutingSections on r.RoutingSectionID equals rs.ID
where h.ID == id
select {ReqID = h.ID,
RoutingSection = rs.RoutingSection}