在 .NET 中将 EF Core 升级到 9.0.5 MySQL 连接提示 get_LockReleaseBehavior
前言
今天咱们把 Microsoft.EntityFrameworkCore 升级到 9.0.5 最新版本,然后进行 MySQL 连接操作提示下面异常:
Method 'get_LockReleaseBehavior' in type 'Pomelo.EntityFrameworkCore.MySql.Migrations.Internal.MySqlHistoryRepository' from assembly 'Pomelo.EntityFrameworkCore.MySql, Version=8.0.3.0, Culture=neutral, PublicKeyToken=2cc498582444921b' does not have an implementation.
问题原因
出现以上异常的主要原因就是因为 Pomelo.EntityFrameworkCore.MySql 程序集和 Microsoft.EntityFrameworkCore 程序集版本不兼容,Pomelo.EntityFrameworkCore.MySql 8.x 版本中未实现 Microsoft.EntityFrameworkCore 9.x 中的 get_LockReleaseBehavior 方法。
发现Pomelo.EntityFrameworkCore.MySql
项目仓库的 Issues 中有不少人反馈这个问题: https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql/issues/1944
并且 MySQL 官网中也有人反馈这个问题: https://bugs.mysql.com/bug.php?id=116691
解决方案
1、将 Microsoft.EntityFrameworkCore 包降级到 9.0.0 以下版本即可。
2、将 Pomelo.EntityFrameworkCore.MySql 包升级到 最新预发行版 9.0.0-preview.3.efcore.9.0.0 预发布版本(注意:9.0.0-preview 是实验性版本,可能存在未适配或未实现的方法,不建议生产环境使用)。
作者名称:追逐时光者
作者简介:一个热爱编程、善于分享、喜欢学习、探索、尝试新事物和新技术的全栈软件工程师。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如果该篇文章对您有帮助的话,可以点一下右下角的【♥推荐♥】,希望能够持续的为大家带来好的技术文章,文中可能存在描述不正确的地方,欢迎指正或补充,不胜感激。