使用 Devart.MySql 将 EF6 升级到 EF Core 3

Posted

技术标签:

【中文标题】使用 Devart.MySql 将 EF6 升级到 EF Core 3【英文标题】:Upgrading EF6 to EF Core 3 with Devart.MySql 【发布时间】:2021-11-30 00:01:44 【问题描述】:

我一直在尝试将我们的实体框架从 EF6 升级到 EF Core 3.1,但出现了这个奇怪的错误。

以下是我执行的步骤或一些可能有帮助的信息

当前 .NET 框架版本为 4.7.2 使用 EF Core 6 使用 mysql 将 EF Core 升级到 EF Core 3.1(为什么是 3.1?我们还不能升级类库版本,因为它有很多依赖项,而且 3.1 是与 .NET 4.7.2 的最新兼容版本) 我正在使用 Devart dotConnect for MySql 作为提供程序。还升级到了 8.19 版(目前为最新版本) 修复了所有构建错误并创建了模型构建器来定义和映射表属性和列。

完成所有这些步骤后,项目构建没有错误并且项目运行。但是,当我尝试登录(显然是进行数据库调用)时,它会停止。如果我在实际的 linq 查询上放置一个断点,它就会停止。它什么也不做。没有超时错误,没有异常,什么都没有。我还尝试检查数据库服务器日志,查询没有记录,所以查询肯定没有通过服务器。我还试图故意在连接字符串上放一个错误的数据库名称,它抛出了一个错误,数据库不存在。

有人有同样的经历吗?

【问题讨论】:

【参考方案1】:

    启用 dbMonitor 工具以检查连接是否打开以及 SQL 查询是否发送到 MySQL 服务器:https://www.devart.com/dotconnect/mysql/docs/?dbmonitor.html。有什么错误吗?

    在调试您的项目之前,在您的 Visual Studio 中进行这些设置以获得异常和详细的堆栈跟踪:

在(调试 > Windows > 异常设置)窗口中,选择公共语言运行时异常 在(工具 > 选项)窗口中,导航到调试 > 常规并清除启用仅我的代码

如果这无助于解决问题,请通过our contact form 提交请求以获得支持。

【讨论】:

以上是关于使用 Devart.MySql 将 EF6 升级到 EF Core 3的主要内容,如果未能解决你的问题,请参考以下文章

如何从实体框架 4 升级到 EF6?

MVC5+EF6 完整教程17--升级到EFCore2.0(转)

如何将 Database First Entity Framework 4 升级到 6

如何永久修复升级到EF6后出现的“EdmFunctionAttribute is obsolete”警告?

EF6 无法将分离的实体附加到上下文

将 EF5 升级到 EF 6,现在得到“找不到对象,因为它不存在或您没有权限。”