转换" LINQ表达式无法翻译"警告错误

时间:2018-06-15 22:03:56

标签: c# entity-framework-core

我最近查看了我的日志,我注意到我的一个查询引发了一条警告,表示" LINQ表达式' {表达}'无法翻译,将在本地进行评估。"这是因为我在查询表达式中犯了一个错误。

我能够毫不费力地解决这个问题。我的问题是:如果不手动查看日志,如何在未来检测到这种情况?

两种可能的解决方案(我都不知道如何实施):

  • 将警告更改为错误
  • 编写检测问题的测试。我目前有测试使用内存数据库来测试查询的其他方面。

我的目标是能够防止这样的错误意外地进入生产阶段。

1 个答案:

答案 0 :(得分:2)

使用@GertArnold提供的链接,我可以使用以下代码将警告转换为错误:

services.AddDbContext<MyContext>(
    options =>
    {
        options.UseSqlServer("connection-string");
        options.ConfigureWarnings(warnings => warnings.Throw(RelationalEventId.QueryClientEvaluationWarning));
    }
)