每组最多n个查询可转换为ef core 2.1中的服务器评估

时间:2018-10-12 11:27:15

标签: c# linq entity-framework-core greatest-n-per-group ef-core-2.1

我有一个具有布局的SQL表Items

Code | UpdatedAt  | data columns...
------------------------
0001 | 2017-01-01 | ..
0001 | 2017-01-02 | ..
0002 | 2017-01-01 | ..
0003 | 2017-01-01 | ..

,并希望选择Items中所有具有最新UpdatedAt值的ef core 2.1

对于代码为Item的{​​{1}},以下方法适用并转换为单个SQL查询:

code

,但要获取所有最新的var latestItemVersion = await DbContext.Items.Where(p => p.Code == code).OrderByDescending(p => p.UpdatedAt).FirstOrDefaultAsync()的列表:

Items

返回正确的结果,但会生成类似var latestItemVersions = await DbContext.Items.GroupBy(p => p.Code).Select(g => g.OrderByDescending(p => p.UpdatedAt).First()).ToListAsync()的查询,并在本地对结果进行分组。

EF记录警告:

SELECT * from [Items] ORDER BY [code]

如何将其转换为可转换为单个SQL查询的内容?有可能吗?

0 个答案:

没有答案