VS2013+EF6+MYSQL 完美版

安装以下软件:

  1. 安装mysql-connector-net-6.8.7.msi,可到Mysq官网下载,也可直接点击这里直达。目前官网版本已升级到:6.9.7;可以尝试用最新版。传送门官网地址
  2. 安装mysql-for-visualstudio-1.2.5.msi,可到Mysql官网下载,也可点击这里直达。目前已最新版就是1.2.5。
  3. 安装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.DataMySql.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