VS2017+EF+Mysql生成实体数据模型(解决闪退的坑) 版本对应才行

最近要使用VS2017+EF+Mysql,在生成实体数据模型踏过一些坑,在此做个总结。

1.先下载并安装 mysql-connector-net-6.9.10.msi  和  mysql-for-visualstudio-1.2.7.msi ,现在官网提供的是mysql-connector-net-6.10.6,我试过,这个版本不行,原因后面再讲。

2.通过nuget来安装 EntityFramework 、MySql.Data、MySql.Data.Entity (我安装的是目前最新的版本,分别是6.2.0, 6.10.6,6.10.6 )。

 

3.建立ADO.NET实体数据模型。

 

4.我选的是code first。

 

5.在这里可以“新建连接”或者使用以前建立过的连接,我们“新建连接”。

 

6.因为我们的数据源是mysql,所以要选择“MySQL Database”,这里要注意一下,如果没有安装本文第一步的mysql-connector-net 和  mysql-for-visualstudio,只有上面的Microsoft SQL Server这两项,因为Microsoft SQL Server才是微软的亲儿子。

 

7.填入连接属性,测试一下,看是否能连上我们的mysql数据库。

 

8.到了这一步,离成功非常近了,但是这里有个坑,会闪退,看图。

 

9.如果没有闪退,恭喜你,非常接近成功了!这里可以选择数据库表来自动生成实体。

 

10.完成!

坑主要是在闪退这里,为什么会闪退呢?因为vs2017的mysql驱动是6.9.8,(如何查看mysql驱动版本?在vs2017的安装目录的Common7\IDE\PrivateAssemblies 下能找到),而目前最新的mysql-connector-net 是 6.10.6,版本太高了,一开始我也是死活不行,降一点就可以了,本文用的是6.9.10,就可以了。

 

 

 

 

所以要下载对应的版本。记住最重要的是看自己vs里面的版本,然后再在mysql的官网下载对应的版本。

 

 

 

第二点,关于在引入MySQl.data.dll和Entity时候,也需要看版本,必须对应。

第三点,当model层作为类库的时候,web或者其他表现层要引用的时候,需要引入mysql.data.dll和entity因为需要另外一个dll

最终才可以用起来。

 

 

  1. 报错信息
  2. 这是因为config配置出错导致的

 

posted @ 2019-03-17 10:36  奋斗的中年人哈哈哈  阅读(519)  评论(0编辑  收藏  举报