【发布时间】:2020-07-27 20:10:50
【问题描述】:
我一直在将我的项目从 .net core 2.2 迁移到 3.1 LTS,并且还更新了所有 nuget 包,并且在完成所有这些过程之后,我发现我的许多 Rest API 端点由于 EF 和 DB 的一些问题而停止正常工作.
与这篇文章Breaking changes included in EF Core 3.0 相关,现在我们有大量的重大更改必须立即修复(我们不能保持原样)才能成功迁移到 .net core 3.1 和 EF 3.0。
问题是,如何安全迁移到 EF Core 3.0 以及如何找到所有需要修复 LINQ 查询的地方?
【问题讨论】:
-
真正的变化是客户端评估默认关闭(谢天谢地!!!!)。它仅作为权宜之计存在,因为 EF Core 1.0 甚至无法执行
Group By。每次使用客户端配置时,EF Core 2.2已经发出警告,但很可能没有记录。你可以配置一个 EF Core 2.2 DbContext 来代替,如图here -
您可以在您的上下文中添加
optionsBuilder.ConfigureWarnings(w =>w.Throw(RelationalEventId.QueryClientEvaluationWarning));,在迁移前解决问题,然后迁移到 EF Core 3.1 -
测试,测试测试.....当然,您可以将查询转移到更容易单独测试的方法中。
-
当然,我需要对所有查询进行测试,但我想知道是否有使用静态分析器之类的选项来显示我需要更新 LINQ 查询的所有位置。
标签: c# entity-framework .net-core entity-framework-core asp.net-core-3.1