在从 .net5 迁移到 .net6 时,我遇到了实体框架的问题(针对 SqlServer 数据库运行)
AppDbContext context = _provider.GetRequiredService<AppDbContext>();
var grp = from d in context.Devices
group d by d.CreatedOn.Day
into grp2
select grp2;
Assert.IsTrue(grp.Count() > 0); //this throws an exception
Run Code Online (Sandbox Code Playgroud)
我认为错误描述不是很直观:
不支持翻译包含没有组合的分组参数的“选择”。
为了解决这个问题,我只需添加一个 orderby,但无法理解为什么需要这样做。
AppDbContext context = _provider.GetRequiredService<AppDbContext>();
var grp = from d in context.Devices
group d by d.CreatedOn.Day
into grp2
orderby grp2.Key
select grp2;
Assert.IsTrue(grp.Count() > 0); //this throws exception
Run Code Online (Sandbox Code Playgroud)
以前有人遇到过这个问题吗?我错过了什么吗?有趣的是,这对于 EF Core 5 来说不是问题,查询在没有 orderby 的情况下照常工作。
ef-core-6.0 ×1