簡體   English   中英

將SQL組轉換為Entity Framework Lambda表達式

[英]Conversion of SQL group by to Entity Framework Lambda expression

我有3個表A,其中有ID和其他字段,B有ID,C對A和B中的ID有多對多的關系

我做了一個查詢,得到了我需要的結果

select result.*
from 
    (SELECT max(A.AID) as AID
    FROM A, C
    where A.AID = C.AID
    group by C.BID) as x, A as result
where result.AID = x.AID

我想將它轉換為實體框架中的lambda表達式。 但目前查詢效率不高。 我如何在EF中制作lamda表達式並使其更高效?

如果您首先按照您想要的最大ID,然后在相關表中GroupBy該ID下降結果,那么從每個分組中選擇First,您應該得到所需的結果。

var groupedResults = tempContext.A.OrderByDescending(a => a.AID
).GroupBy(group => group.C.AID).Select(group => group.FirstOrDefault());

這應該返回A實體的IQueryable,然后您可以根據需要繼續使用其他子句進行修改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM