c#使⽤EF框架连接MySql
c# 使⽤EF连接Mysql 坑可不是⼀般的多!
第⼀:有的使⽤EF模型时出现: 您的项⽬引⽤了最新实体框架;但是,不到数据链接所需的与版本兼容的实体框架数据库
第⼆:新建连接时,没有Mysql DataBase 选项。
第三:使⽤EF模型时闪退。
今天各种问题都遇到了。
下⾯讲述⼀下我成功使⽤EF连接MySql的流程,我这⾥就演⽰CodeFirst模式。
我的环境是:
win7 旗舰版 + vs2017 社区版 + 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
mysql下载后的初次使用第三步:使⽤NuGet 下载 EntityFramework。(实际上就EntityFramework.dll 这个有⽤。)
⽤NuGet下载会在fig中⽣成配置, ⾃⼰配置就⿇烦⼀些。
我下载的版本是 6.4.4
NuGet 在 ⼯具->NuGet包管理器->管理解决⽅案的NuGet包。
第四步:添加引⽤,就是上⾯Connector/NET安装后得到的dll。应该⼤家的路径都是⼀样的。
除了我我选中的三个其他的都添加上,因为libzstd 应该不是c# 连接库,引⽤报错。另外两个会有警告。
⾄于其他的MySql.Data.dll,MySql.Data.EntityFramework.dll 肯定是⽤上的,其他的我就不太清楚了,做完之后可以删除试试。
第五步:在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 中是带了的。最好不要去下载这两个库。
我今天下载这两个库⼀直都是出问题的!
如果成功解决你的问题,请点个赞!如果还不能解决,⾮常抱歉!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论