在Microsoft Visual Studio 2013的WinForms中为MySql(C#)启用实体框架6

V-S*_*SHY 43 c# mysql winforms entity-framework-6 visual-studio-2013

昨天我知道Entity Framework是另一种使用Dataset或DataReader访问数据库的方法,然后我尝试让Entity Framework 6在MVS 2013中为我的MySql数据库服务器工作.

我用.Net FrameWork 4.5.1打开一个WinForms.(所以我只有的App.config,但在项目中没有应用程序/ Web配置)安装后我的mysql的安装程序,以社区为5.7.3.0,m13.msi

通过安装EntityFramework包

工具菜单 - >库包管理器 - >管理解决方案的NuGet包... - >在线 - >(搜索)EntityFramework(提防此包的版本,它应该是版本6.0.2,如果没有,则单击更新 - > EntityFramework更新)

当我尝试通过添加ADO.NET实体数据模型时

右键单击Project - > Add - > New Item - > ADO.NET Entity Data Model - > Generate from Database - > New Connection - > Data sources: - > Change ...-> MySQL Database - >填写服务器名称服务器IP,用户名和密码 - >选择数据库名称 - >测试连接 - >确定

然后生成实体连接字符串 - >将App.Config中的实体连接设置保存为 - >下一步> - >

您要使用哪个版本的Entity Framework?有选项Entity Framework 6.0但你不能使用它,因为

"您的项目引用了最新版本的Entity Framework;但是,找不到与此版本兼容的Entity Framework数据库提供程序用于您的数据连接.退出此向导,安装兼容的提供程序,并在执行此操作之前重新构建项目".

怎么解决这个?

顺便说一下,如果您在Nuget Package中安装Entity Framework版本5,那么您可能在此处选择了Entity Framework 5.0,您可能成功使用Entity Framework 5而不是版本6.

V-S*_*SHY 87

首先,我们甚至不需要安装mysql-installer- community -5.7.3.0-m13.msi.

  1. 安装最新的mysql-visualstudio-plugin
  2. 安装最新的mysql-connector-net
  3. 新的C#.Net 4.5框架WinForms(对于4.0,它应该基于实体框架6是否支持.NET 4.0?)
  4. 安装4个Nuget包(按照顺序,如果你在EntityFramework之前安装Mysql.Data.Entities,它将解析依赖并安装EntityFramework 6.0.2但我们需要的是EntityFramework 6.1.0)

的EntityFramework

Mysql.Data

Mysql.Data.Entities

Mysql.Web

5.如果你在App.config中标签entityFramework,请注释它并在标签启动后在App.config中插入新的标签entityFramework

  <entityFramework>
    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
    </providers>
  </entityFramework>
Run Code Online (Sandbox Code Playgroud)

6.添加ADO.NET实体数据模型(如上所述)

7. 生成实体连接字符串(如上所述)并在App.Config中勾选保存实体连接设置,然后单击下一步

8. 选择数据库对象和设置(表,视图,或存储过程和函数)(不要有"你想要哪个实体框架的版本使用?"因为我只有一个实体框架6.0提供商所以直接跳过了如果我唯一的提供者是有效的选择)

9.Finish

恭喜^^

顺便说一句,您可能需要添加.dll文件

  • MySql.Data.dll
  • MySql.Data.Entity.EF6.dll
  • MySql.Web.dll

在这个文件夹里面

C:\ Program Files\MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5(32位窗口)

C:\ Program Files(x86)\ MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5(64bit windows)

作为进一步E​​F6功能的项目参考.

  • 这让我通过了,但现在在第7步之后,对我来说它只是关闭了整个EF向导,我必须重新开始,好像它出错了什么的.有任何想法吗? (11认同)
  • 对于那些转换现有项目的人,我必须卸载上面列出的所有软件包(以相反的顺序),然​​后再次重新安装它们。我尝试了升级,但是最终关闭了ADO Entity向导,却没有执行任何操作(可能是无提示的崩溃)。 (2认同)

ih3*_*303 11

我按照V-Shy给出的指示,与LaRae White有同样的问题,向导关闭了我.我正在运行VS2015并且刚刚使用MySql安装程序更新到MySQL for Visual Studio v1.2.6和Connector/NET v6.9.8.

我最终做的是让它发挥作用是这样的:

  1. 卸载我之前安装的所有软件包以解决此问题(EntityFramework,Mysql.Data,Mysql.Data.Entities,Mysql.Web)
  2. 手动添加了C:\ Program Files(x86)\ MySQL\Connector.NET 6.9\Assemblies\v4.5中的以下引用:MySql.Data.dll,MySql.Data.Entity.EF6.dll和MySql.Web. DLL

我希望能帮助别人.