gpt4 book ai didi

c# - 不支持客户端 GroupBy

转载 作者:行者123 更新时间:2023-12-04 01:05:02 27 4
gpt4 key购买 nike

我有以下 Entity Framework Core 3.0 查询:

var units = await context.Units
.SelectMany(y => y.UnitsI18N)
.OrderBy(y => y.Name)
.GroupBy(y => y.LanguageCode)
.ToDictionaryAsync(y => y.Key, y => y.Select(z => z.Name));

我收到以下错误:
Client side GroupBy is not supported.

要在客户端或部分客户端上运行查询,我将执行以下操作:
var units = context.Units
.SelectMany(y => y.UnitsI18N)
.OrderBy(y => y.Name)
.AsEnumerable()
.GroupBy(y => y.LanguageCode)
.ToDictionary(y => y.Key, y => y.Select(z => z.Name));

现在它起作用了。

如果我没有在客户端上运行查询,为什么会出现此错误?

最佳答案

您的 .GroupBy(y => y.LanguageCode).ToDictionaryAsync(y => y.Key, y => y.Select(z => z.Name));无法转换为 SQL。
EF Core 3.0 将抛出异常以确保您知道 Units 中的所有记录将在分组之前从数据库中获取并映射到字典。

这是 EF Core 3.0 中最重大的变化。
https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/breaking-changes

关于c# - 不支持客户端 GroupBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58138556/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com