安装以下软件:
- 安装mysql-connector-net-6.8.7.msi,可到Mysq官网下载,也可直接点击这里直达。目前官网版本已升级到:6.9.7;可以尝试用最新版。传送门官网地址
- 安装mysql-for-visualstudio-1.2.5.msi,可到Mysql官网下载,也可点击这里直达。目前已最新版就是1.2.5。
- 安装EFTools6.1.3ForVS2012.msi(如果是VS2012)或者EFTools6.1.3ForVS2013.msi(如果是VS2013);下载可到微软官网,可点这里直达。
以上软件都安装后,建立好项目,添加新项目(ADO.NET实体数据库)这里会只有5.0 而6.0是灰色的。
这样情况EF就需要升级,在*NUGET*控制台里边执行这两句命令:
Install-Package EntityFramework
Install-Package MySql.Data.Entity
执行完成后,会生成App.Config
文件。
代码内容是这样的:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.8.0,Culture=neutral,Publickeytoken=c5687fc88969c44d"></provider></providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
现在右键添加ADO.net 实体数据库选择连接数据库后会闪退,很多人都在这一步困住了。
现在把引用里边的 MySql.Data
和 MySql.Data.Entity.EF6
这2个移除。
然后,右键添加引用,在程序集-扩展里边,选择如下图的这3个,要注意他们的版本,我环境是4.0 所以选择4.0的。
重新生成解决方案后,右键添加新项目-ADO.NET实体数据库,现在如果提示找不到兼容数据库提供程序,如下图:
如果出现这样的,打开App.Config
文件找到
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
修改为如下图所示:
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>
现在添加ADO.NET实体数据库,!
OK,看到了熟悉的界面,VS2013+EF6+MYSQL 就此完美搞定!
然后,还遇到过这样的问题:由于出现以下异常,无法生成模型:“表“TableDetails
”中列“IsPrimaryKey
”的值为DBNULL
遇到这样的问题,请安装MYSQL的稳定版。我安装的5.6.27,官方下载的!
地址:http://dev.mysql.com/downloads/installer/ http://dev.mysql.com/downloads/file/?id=459310