前記
最近有用到 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ㄒ)/~~)。
好吧,也是個坑,填了也好