Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “修订规则”;无法翻译LINQ表达式“;_C#_Entity Framework_Linq_Entity Framework Core_Ef Core 3.1 - Fatal编程技术网

C# “修订规则”;无法翻译LINQ表达式“;

C# “修订规则”;无法翻译LINQ表达式“;,c#,entity-framework,linq,entity-framework-core,ef-core-3.1,C#,Entity Framework,Linq,Entity Framework Core,Ef Core 3.1,我正在升级一个应用程序以使用EF Core 3.1 我得到的错误是无法翻译LINQ表达式。以可翻译的形式重写查询,或切换到客户端评估 我的代码中大约有80个查询。 我理解,对于每个查询,我可以: 翻译查询 使用.AsEnumerable/.ToList/等使查询在客户端运行 我想翻译尽可能多的问题 是否有关于哪些内容可以/不能翻译的规则列表?(我在想象MSDN的参考指南) 目前,我的方法是以各种方式更改查询,直到它工作为止,或者我放弃并添加.AsEnumerable 我希望能够检查一个查询并

我正在升级一个应用程序以使用EF Core 3.1

我得到的错误是无法翻译LINQ表达式。以可翻译的形式重写查询,或切换到客户端评估

我的代码中大约有80个查询。
我理解,对于每个查询,我可以:

  • 翻译查询
  • 使用
    .AsEnumerable
    /
    .ToList
    /等使查询在客户端运行
我想翻译尽可能多的问题

是否有关于哪些内容可以/不能翻译的规则列表?(我在想象MSDN的参考指南)
目前,我的方法是以各种方式更改查询,直到它工作为止,或者我放弃并添加
.AsEnumerable


我希望能够检查一个查询并确定要做什么,而不必使用试错法(或者就堆栈溢出问题问80个问题!)

从好的方面来看!☀

多亏了EF Core 3.1,您发现了80个以前由客户机评估的查询,而且速度很慢

.AsEnumerable()
添加到所有案例中,并将80个案例添加到您的积压工作中,从[最慢的|访问量最大的|影响最大的]查询开始,有条不紊地工作

根据经验,大多数东西都无法翻译。将无法在此处翻译的查询作为单独的问题发布,我们将很乐意帮助您进行优化


狩猎快乐

从好的方面来看!☀

多亏了EF Core 3.1,您发现了80个以前由客户机评估的查询,而且速度很慢

.AsEnumerable()
添加到所有案例中,并将80个案例添加到您的积压工作中,从[最慢的|访问量最大的|影响最大的]查询开始,有条不紊地工作

根据经验,大多数东西都无法翻译。将无法在此处翻译的查询作为单独的问题发布,我们将很乐意帮助您进行优化


狩猎快乐

显示你的代码?您正在使用的查询或linq没有被翻译?只需运行您的集成测试。幸运的是,该领域的文档严重缺乏,EF Core 3.1在一些主要领域(特别是group join和group by)仍然非常有限,尽管在改进5.0方面还存在一些问题。您最好尝试查询,如果查询失败,请尝试在此处或github中查找特定问题。LINQPad 6是一个很好的工具来帮助实现这一点。此错误最常见的罪魁祸首是使用自定义方法或EF无法翻译的库方法的linq表达式。还有一些不常见的Linq表达模式可能无法在EF Linq中实现,尤其是EF Core,它通常处于相当大的流量中。这可能是一个常见问题,域代码接受表达式作为参数,从调用代码中提取EF。这在某种程度上违反了LSP。(不是在接口方面,而是在替换方面,并非所有Linq表达式都是相等的)关于什么表达式对EF是合法的,仍然需要了解。显示您的代码?您正在使用的查询或linq没有被翻译?只需运行您的集成测试。幸运的是,该领域的文档严重缺乏,EF Core 3.1在一些主要领域(特别是group join和group by)仍然非常有限,尽管在改进5.0方面还存在一些问题。您最好尝试查询,如果查询失败,请尝试在此处或github中查找特定问题。LINQPad 6是一个很好的工具来帮助实现这一点。此错误最常见的罪魁祸首是使用自定义方法或EF无法翻译的库方法的linq表达式。还有一些不常见的Linq表达模式可能无法在EF Linq中实现,尤其是EF Core,它通常处于相当大的流量中。这可能是一个常见问题,域代码接受表达式作为参数,从调用代码中提取EF。这在某种程度上违反了LSP。(不是在接口方面,而是在替换方面,并非所有Linq表达式都是相等的)关于什么表达式对EF是合法的,仍然需要了解。