重构GroupBy查询,因此EF Core

时间:2018-03-26 08:06:46

标签: c# linq entity-framework-core

我在日志中发现了一条警告,告诉我由于包含GroupBy()方法而正在评估我的AsQueryable()查询。

我在我的应用中的几个地方使用它,所以想要重构它以获得性能。

我有一个商品表,每个用户可以为作业制作多个商品条目。我想要一个查询,该查询仅返回用户作为IQueryable的每个作业的最新报价列表。

这是我的解决方案:

db.Offers
    .AsNoTracking()
    .Where(x => x.UserId == userId)
    .OrderByDescending(x => x.CreateDate)
    .GroupBy(x => x.JobDetailId)
    .Select(x => x.First())
    .AsQueryable();

它运行正常但似乎EF Core无法将其转换为查询,它必须执行不理想的查询,因为我实际上正在进行进一步的工作以便稍后执行查询,然后在执行之前对其进行分页。

如果我在没有GroupBy的情况下获得每个JobDetailId的最新优惠,我怎样才能获得相同的效果?我无法看到它是如何完成的。

我正在使用Entity Framework Core 2.0.1

0 个答案:

没有答案