使用Lambda语法将SQL子查询转换为EF查询

时间:2013-10-02 13:33:02

标签: c# entity-framework

这是SQL查询,,,我有两个tables, one is Categories and other Sub Categories ,,,我想使用inner query(Category table) and that value pass to outer query(Sub categories table) 如何使用lambda表达式将其转换为实体框架..?

select * 
from DC_System_SubCategories 
where CatID = (select max(CatID) 
               from DC_System_Categories) 

1 个答案:

答案 0 :(得分:2)

假设DCSystemSubcategories是具有适当属性的IEnumerable<DCSystemSubcategory>,而DCSystemCategories是相关的IEnumerable<DCSystemCategory>

var subcategoriesWithMaxCatId = DCSystemSubcategories
                           Where(x=>x.CatID ==
                                 DCSystemCategories.Max(sc=>sc.CatID))

但是存在稳定性问题取决于你如何填充DCSystemSubcategories,所以期望做一些其他的逻辑;如果可以重复CatID,结果也是不确定的。

编辑:因为马格努斯在评论中指出了优越的转换。 并且为了说明我们忽略的问题中的细节......