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

本文关键字:查询 转换 EF SQL Lambda 语法 使用 | 更新日期: 2023-09-27 18:33:46

这是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) 

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

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

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

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

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