首页 > 解决方案 > 如何将有关本地评估表达式的 EF Core 警告转换为错误?

问题描述

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

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

标签: c#asp.net-coreentity-framework-core

解决方案


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

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

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

optionsBuilder.ConfigureWarnings(warnings => warnings
    .Throw(RelationalEventId.QueryClientEvaluationWarning)
);

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

.Throw(RelationalEventId.QueryClientEvaluationWarning)
.Throw(CoreEventId.IncludeIgnoredWarning)

推荐阅读