【问题标题】:Convert "The LINQ expression could not be translated" warning into an error将“无法翻译 LINQ 表达式”警告转换为错误
【发布时间】:2018-10-20 04:48:25
【问题描述】:

我最近查看了我的日志,发现我的一个查询导致了一条警告,上面写着“无法翻译 LINQ 表达式 '{expression}' 并将在本地进行评估。”这是因为我在查询表达式中犯了一个错误。

我能够轻松解决这个问题。我的问题是:我以后如何在不手动查看日志的情况下检测到这种情况?

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

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

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

【问题讨论】:

标签: c# entity-framework-core


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多