2021-03-20 乐帮网
mysql
使用工具VS 2019 ,使用C#编写了一个netcore项目的数据库相关操作的封装,第一步就是写T4模板从数据库自动生成实体类,在运行T4的时候发现输出如下错误:Failed to load provider `MySql.Data.MySqlClient` - 找不到请求的 .Net Framework Data Provider。
这个在网上搜索一堆,都是说在config中添加数据库映射节点,有的还复制mysql.data.dll。我想说这种解决方法不正确,并非推荐方案,下面我说一下正确的解决方案。里面有一些细节请君重视。
首先到mysql的官网下载MySQL的数据库驱动,下载地址如下:https://dev.mysql.com/downloads/
这里要注意的是我们选择的是Connector/NET,并不是使用ODBC。如下图:
进去后发现只有32位的,这个就对啦,信息如下:
Windows (x86, 32-bit), MSI Installer 8.0.23 4.1M
Download
(mysql-connector-net-8.0.23.msi)
我们只需要下载mysql-connector-net-8.0.23.msi一直下一步安装成功就好了。
到这里就完成了吗?答案是否定的,此时如果我们去C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config里看一看,它就会自动添加了mysql相关驱动信息。主要如下:
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.23.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
安装完成后,我们依然需要关闭VS2019,然后再重新打开VS2019运行T4模板,这才算完成。终归到底是我们数据库连接串里用到了providerName="MySql.Data.MySqlClient" 通过它来动态加载数据库的驱动。
关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com
庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。
如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力