目录

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是灰色的。

https://img.9x81.com/wp-content/uploads/2015/11/20151122161527.png

  这样情况EF就需要升级,在NUGET控制台里边执行这两句命令:

1
2
Install-Package EntityFramework
Install-Package MySql.Data.Entity

https://img.9x81.com/wp-content/uploads/2015/11/20151122161628.png

  执行完成后,会生成App.Config文件。

https://img.9x81.com/wp-content/uploads/2015/11/20151122162022.png

  代码内容是这样的:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?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>

https://img.9x81.com/wp-content/uploads/2015/11/20151122162433.png

  现在右键添加ADO.net 实体数据库选择连接数据库后会闪退,很多人都在这一步困住了。

  现在把引用里边的 MySql.DataMySql.Data.Entity.EF6这2个移除。

https://img.9x81.com/wp-content/uploads/2015/11/20151122162540.png

  然后,右键添加引用,在程序集-扩展里边,选择如下图的这3个,要注意他们的版本,我环境是4.0 所以选择4.0的。

https://img.9x81.com/wp-content/uploads/2015/11/20151122162714.png

  重新生成解决方案后,右键添加新项目-ADO.NET实体数据库,现在如果提示找不到兼容数据库提供程序,如下图:

https://img.9x81.com/wp-content/uploads/2015/11/20151122162752.png

  如果出现这样的,打开App.Config文件找到

1
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>

  修改为如下图所示:

1
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>

https://img.9x81.com/wp-content/uploads/2015/11/20151122162813.png

  现在添加ADO.NET实体数据库,!

https://img.9x81.com/wp-content/uploads/2015/11/20151122162831.png

https://img.9x81.com/wp-content/uploads/2015/11/20151122162901.png

https://img.9x81.com/wp-content/uploads/2015/11/20151122162954.png

  OK,看到了熟悉的界面,VS2013+EF6+MYSQL 就此完美搞定!

https://img.9x81.com/wp-content/uploads/2015/11/20151122162831.png

  然后,还遇到过这样的问题:由于出现以下异常,无法生成模型:“表“TableDetails”中列“IsPrimaryKey”的值为DBNULL

https://img.9x81.com/wp-content/uploads/2015/11/20151122170635.png

  遇到这样的问题,请安装MYSQL的稳定版。我安装的5.6.27,官方下载的!

  地址:http://dev.mysql.com/downloads/installer/      http://dev.mysql.com/downloads/file/?id=459310