欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c# 使用EF框架连接MySql

程序员文章站 2024-01-18 23:14:10
...

c# 使用EF连接Mysql 坑可不是一般的多!
第一:有的使用EF模型时出现: 您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库

第二:新建连接时,没有Mysql DataBase 选项。

第三:使用EF模型时闪退。

今天各种问题都遇到了。
下面讲述一下我成功使用EF连接MySql的流程,我这里就演示CodeFirst模式。

我的环境是:
win7 旗舰版 + vs2017 社区版 + .net framework 4.5.2(好像最低要求是这个版本)

第一步: 下载 mysql-for-visualstudio, 要使用EF模型必须要这个。
下载地址
一般下载最新的就可以了,如果要下载历史版本点击Archives选项卡。
我下载的版本是:MySQL for Visual Studio 1.2.9

第二步: 下载 Connector/NET,这个是连接器安装这个才能使EF连接MySql,这个连接器还包含Mysql EF的重要代码, MySql.Data.dll,MySql.Data.EntityFramework(有的版本是MySql.Data.EF6)。 下载的有些低版本是不会在新建连接时出现mysql连接选项的。至于从哪个版本开始可以我就不清楚了,这个跟vs版本有关系。只能一个个去试。
下载地址
我下载的版本是:Connector/NET 8.0.21

第三步:使用NuGet 下载 EntityFramework。(实际上就EntityFramework.dll 这个有用。)
用NuGet下载会在App.config中生成配置, 自己配置就麻烦一些。
我下载的版本是 6.4.4
NuGet 在 工具->NuGet包管理器->管理解决方案的NuGet包。

第四步:添加引用,就是上面Connector/NET安装后得到的dll。应该大家的路径都是一样的。
除了我我选中的三个其他的都添加上,因为libzstd 应该不是c# 连接库,引用报错。另外两个会有警告。
至于其他的MySql.Data.dll,MySql.Data.EntityFramework.dll 肯定是用上的,其他的我就不太清楚了,做完之后可以删除试试。
c# 使用EF框架连接MySql
第五步:在providers 节点下添加

<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework"></provider>

这里要注意了 MySql.Data.EntityFramework 这个不是每个版本都是一样的,它实际上就是 dll的名称。有的MySql.Data.EF6,取决于下载的Connector/NET的版本。

到这里就完成了! 添加实体模型成功!
网上有很多教程是让去下载 MySql.Data 以及 MySql.Data.Entity 这两个库。 实际上 Connector/Net 中是带了的。最好不要去下载这两个库。
我今天下载这两个库一直都是出问题的!
如果成功解决你的问题,请点个赞!如果还不能解决,非常抱歉!

相关标签: c#