最近使用.NET Core 6.0 使用 DbProviderFactories 连接MySQL数据库,按照例子注册MySQL的工厂,DbUtils.RegisterDbProvider("mysql", "MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data");结果后面使用MySQL工厂的时候报错,提示:The registered .NET Data Provider's DbProviderFactory implementation type 'MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data' couldn't be loaded.意思是不能加载MySQL客户端工厂类。不得不感叹,给连接示例(GitHub - softwaiter/netcoreDbHelper: 通用数据库操作类)大佬可能是在考验我。出现这个不能加载MySQL客户端工厂类的原因是没有注册MySQL客户端工厂,同时MySQL的对应DLL没有被引用。①首先需要从mysql.data.dll下载 官方版-c#连接mysql插件-pc6下载站下载MySql.Data.dll,加入到项目引用中(Startup.cs中using MySql.Data.MySqlClient;需要这个dll)。②然后在Startup.cs中ConfigureServices方法结尾注册MySQL工厂类,代码为:DbProviderFactories.RegisterFactory("MySql.Data.MySqlClient", MySqlClientFactory.Instance); 如下图所示。这样MySQL客户端工厂类就注册好了,可以正常连接MySQL数据库读取数据了。感谢以下两位大佬的分享,可以参考下:
https://www.cnblogs.com/sands/p/11594927.html
https://www.cnblogs.com/zwei1121/articles/9056163.html