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
編集***
ミキから提供されたものを含む他の例を見た後、これを機能させることができました。これが私のために働くコードです:
最初に、参加する必要のある最上位のレコードを保持する route というクエリを作成しました
var route = (from rr in context.ReqRoutings
where rr.ReqID == id
orderby rr.ID descending
select rr).Take(1);
その後、requisitions テーブルと 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}