sql转mysql数据库,用到EF,遇到vs2012新建实体数据模型时无Mysql数据源的问题。
问题截图如下:
解决方法1:(简单的的解决方法,有可能解决问题,如不能解决问题,请看解决方法2):
(1)没有安装mysql-for-visualstudio-1.2.6.msi的需要安装一下。
(2)安装过的需要重新修复下mysql-for-visualstudio-1.2.6.msi。
解决方法2:(在解决方法1不起作用的情况下,尝试本方法):
(1)安装以下四只:
如已经安装了以上四只,还是无法读取到mysql数据库,那么需要卸载MySQL Connector Net 6.9.9,重新安装一下,就可以连接上mysql数据库了。
(2)安装后重新启动vs2012。
注:这个步骤很重要,否则在新建项时找不到ADO.Net实体数据库模型。
(3)新建ADO.Net实体数据库模型时,有MySql数据源如下图:
(2016年12月10日补充遇到的问题:
在上一步完成后,不弹出数据库表结构的选择框,也就是无法选择表放入模型中。如下图:
就是不出现这个界面啊,急死个人呢。
解决方法:卸载MySQL Connector Net 6.9.9,重新安装一下。修复不好使,必须重新安装。鬼知道因为什么。
)
但是在继续操作时会出现以下错误提示1:
针对错误提示1的解决方法:
首先工具->库程序安装包->程序包管理器控制台,在PM>后输入
1 Install-Package EntityFramework -Version 6.0.0然后Enter,提示成功
2 Install-Package EntityFramework.zh-Hans -Version 6.0.0然后Enter,提示成功
3 Install-Package MySql.Data.Entity.EF6,Enter,我使用这种方法没有成功,出现了如下问题:
Install-Package
: 无法找到程序包“MySql.Data.Entity.EF6”。
所在位置 行:1 字符: 16
+ Install-Package <<<< MySql.Data.Entity.EF6
+ CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
下面说我自己是怎么解决这个问题的
通过右键项目->添加引用->浏览,把MySQL Connector Net 6.8.3\Assemblies\v4.5下的所有dll文件引用进来,
4 在web.config里面添加provider节点即可:
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>
问题又来了,弹出如下告警框:
解决方法:
(1)在mysql中运行如下语句:
use TableName;
set global optimizer_switch='derived_merge=OFF';
(2)重新启动VS2012(一定要重启啊亲)
问题解决。