VS 2017 + EF6 + MySQL5.7 建立实体模型闪退问题

前记

最近有用到 MySQL 的空间数据这一块。

对于这一块的数据类型,在 .NET 里怎么用不是很清楚。

于是想到看看 EF 里面是怎么用的。结果新建项目,建立实体模型,总是不成功。

最后经过多次尝试、查阅得以解决。

下面就是具体经过。 

失败的经历

具体环境是:VS2017 、.NET Framework 4.6 、MySql.Data.Entity 6.9.12

在这个环境下总是不成功,具体是在这一步闪退,也不报错:

在点击“下一步”后,没有进入到下一步,窗口直接关掉。

考虑有可能是 .NET Framework 问题,更换了其他版本不行;

考虑有可能是 MySql.Data.Entity 问题,更换了几个版本测试也还是不行;

查阅有说是,mysql-connector-net 版本问题,我看了下,自己安装的是:mysql-connector-net-6.9.9,对应的把 MySql.Data.Entity 也换为 6.9.9,同样还是报错。

那这是什么问题?

那是 mysql-connector-net 版本 太低了?有推荐是换成 6.9.10,下载发现官网上面不提供这个版本,其他地方可以下载。

在这里发现一个问题:官网能下载的 mysql-connector-net 版本号和 NuGet 上面的  MySql.Data.Entity  版本号是一一对应的(虽然 NuGet 可以用控制台安装任意版本)

基于这个,开始了下面的实验。

成功一试

上面说到的问题,看了官网 mysql-connector-net 有 6.9.12/6.10.7 可下载,一般最新的不一定好用,那就下载 6.9.12,卸载原先的 6.9.9,安装新的 6.9.12.

这次环境:VS2017 、.NET Framework 4.6 、MySql.Data.Entity 6.9.12(有没有发现和上面一样?)

在这里,建模成功!成功来的这里:

到此,实验完成,也成功了。

个人认为:如果遇到 EF + MySQL建模问题,把 mysql-connector-net 版本和 MySql.Data.Entity 版本一致(其中mysql-connector-net 是官网可以下载的),基本可以解决问题

最后,就是最开始,想看 EF 中对空间数据格式是怎么处理的,结果都好了,却发现 EF 没有映射空间数据(/(ㄒoㄒ)/~~)。

好吧,也是个坑,填了也好

原文地址:https://www.cnblogs.com/zhurong/p/9481086.html