如何将有关本地计算表达式的 EF Core 警告转换为错误?

Pro*_*log 5 c# entity-framework-core asp.net-core

是否可以将有关本地计算表达式的 Entity Framework Core 警告转换为错误?我想强迫自己总是编写正确评估的查询。

Microsoft.EntityFrameworkCore.Query:警告:LINQ 表达式“(...)”无法翻译,将在本地进行评估。

Iva*_*oev 9

我想强迫自己总是编写正确评估的查询。

听起来是一个好主意。此外,客户评估的想法被认为是错误的,将在 EF Core 3.0+ 中删除,所以做好准备是很好的:)

要在 3.0 之前获得所需的行为,您应该使用ConfigureWarnings扩展方法将默认操作从 更改LogThrow,如可选行为:为客户端评估文档主题抛出异常中所述

optionsBuilder.ConfigureWarnings(warnings => warnings
    .Throw(RelationalEventId.QueryClientEvaluationWarning)
);
Run Code Online (Sandbox Code Playgroud)

此外,最好对Ignored includes做同样的事情,这是意外问题的另一个来源:

.Throw(RelationalEventId.QueryClientEvaluationWarning)
.Throw(CoreEventId.IncludeIgnoredWarning)
Run Code Online (Sandbox Code Playgroud)