【问题标题】:EFCore - Select After Group ByEFCore - 分组后选择
【发布时间】:2022-09-28 22:39:13
【问题描述】:
List<int> data = dbContext.table
.GroupBy(x => x.Date)
.OrderByDescending(x => x.Key)
.Take(1)
.SelectMany(x => x.Select(c => c.Id))
.ToList();

使用 EFCore 进行此查询时出现错误。(但使用 EF 而不是 EFCore 可以正常工作)。 错误说;

\"LINQ 表达式......无法翻译。要么重写 以可翻译的形式查询,或切换到客户评估 通过插入对 \'AsEnumerable\'、\'AsAsyncEnumerable\' 的调用来显式地调用 \'ToList\' 或 \'ToListAsync\'。\"

    标签: c# entity-framework .net-core entity-framework-core


    【解决方案1】:

    做就是了,

    List<int> data = dbContext.table
    .GroupBy(x => x.Date)
    .OrderByDescending(x => x.Key)
    .Take(1)
    .AsEnumerable()
    .SelectMany(x => x.Select(c => c.Id))
    .ToList();
    

    大概。

    【讨论】:

    • 这会起作用,但由于最终只选择了 Id,因此它可能会通过网络从数据库中带来比所需更多的数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多