不能将MySQL连接用于实体框架6

Mar*_*arc 56 mysql entity-framework visual-studio-2013

我正在尝试将实体框架6与MySQL一起使用.

我为visual studio 1.1.1和MySQL .Net连接器6.8.3安装了MySQL插件.

问题是当我尝试创建一个新的ADO.NET实体模型时,我无法为连接选择MySQL.

在此输入图像描述

但是,如果我从visual studio中的连接工具创建连接,我可以看到MySQL

在此输入图像描述

这意味着当前安装的版本与实体框架6不兼容.之后我安装了最新的连接器和插件怎么可能.还有什么可做的吗?

谢谢

编辑

我在没有安装默认连接器的情况下全新安装了MySQL,然后安装了6.8.3和visual studio的插件.

然后我可以看到我为我的实体模型建立的连接,但是当我即将选择实体版本时,我收到了这条消息.

在此输入图像描述

Mar*_*arc 54

最新编辑

该错误已得到修复.

克里斯的评论:

2015-11-07,您现在可以在不编辑任何文件或做奇怪的事情的情况下完成所有工作.使用MySQL for Windows安装程序并包含Visual Studio支持和最新的Connector.Net.确保在安装后更新,您将获得最新的(1.2.5和6.9.8).使用NuGet安装EntityFramework,MySql.Data和MySql.Data.Entity.最后,通过添加Ado.Net实体模型构建并享受代码优先的逆向工程优势.

原始答案

我发现这是MySQL的一个错误.

这是解释工作环境的链接.

在安装了VS 2013的计算机上,VS插件(1.1.3 GA)和Connector/Net

在执行这些步骤之前关闭所有VS实例.

在Windows资源管理器窗口中,转到此路径或您安装Connector/net二进制文件的任何位置

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

复制文件:

MySql.Data.Entity.EF6.dll

并将其粘贴到此文件夹中

C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies

如果它要求你覆盖它,请这样做.

您需要管理员权限才能覆盖该文件.

然后,您可以再次尝试为您的模型生成脚本.

安装VS插件的1.1.3版本非常重要,因为此解决方法就是为此.

不幸的是,它不适合我,所以我降级到实体框架5,直到他们解决这个问题.

编辑

最后,它现在有效.

我不得不添加以下3个DLL:

  • C:\ Program Files(x86)\ MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5\MySql.Data.dll
  • C:\ Program Files(x86)\ MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5\MySql.Data.Entity.EF6.dll
  • C:\ Program Files(x86)\ MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5\MySql.Web.dll

然后我将Web配置中的EntityFramework部分更改为:

<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> 
    </providers>
  </entityFramework>
Run Code Online (Sandbox Code Playgroud)

不要忘记REBUILD,你应该能够用MySQL创建一个实体框架6模型.

重要

确保已为Visual Studio 1.1.3和MySQL连接器.net 6.8.3安装了MySQL

  • 谢谢,这就是我需要的.一个注意事项,我刚刚下载了http://forums.mysql.com/read.php?174,601264,601264中提到的最新版本,VS插件的版本为1.1.1,连接器的版本为6.9.5 .我可以验证这些版本也需要这些步骤. (2认同)

Edv*_*lva 11

解!2017年

安装Nuget包:

Install-Package EntityFramework
Install-Package MySql.Data.Entity -Version 6.9.9
Run Code Online (Sandbox Code Playgroud)

为Visual Studio 1.2.6安装MySQL - https://dev.mysql.com/downloads/windows/visualstudio/

Web.Config的变化

<EntityFramework>
Run Code Online (Sandbox Code Playgroud)

至:

<EntityFramework codeConfigurationType = "MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
Run Code Online (Sandbox Code Playgroud)

添加(**您的信息**):

<connectionStrings>
<add name="**YourContextName**" connectionString="server=**xxx.xxx.xxx.xxx**;port=3306;user id=**your user**;password=**your password**;database=**your database**" providerName="MySql.Data.MySqlClient" /></connectionStrings>
Run Code Online (Sandbox Code Playgroud)


重新启动Visual Studio

我的设置:
- Microsoft Visual Studio社区2015
- Dot Net Framework 4.5.2
- Asp.Net MVC 5.2.3.0
- MySql Server 5.6


awe*_*dan 6

不确定这对你来说是否还是个问题,但是上述解决方案都没有对我有用......直到我发现这个:

http://www.microsoft.com/en-us/download/details.aspx?id=40762

应用补丁后(对于VS2013和VS2012),我让VS2013与EF6 for MySql完美配合.

PS.安装的软件包版本(来自NuGet):
EntityFramework - 6.1.3(03/10/2015)
MySqlData - 6.9.6(02/24/2015)
MySql.Data.Entity - 6.9.6(02/24/2015)
MySql.网络 - 6.9.6(02/24/2015)

NuGet完成工作并相应地更新Web.Config,填写"entityFramework"部分以及所需的任何内容.

对于VS2013,它只是从"根本不工作"到"全功能".对于VS2012,它可以使用"数据库中的代码优先",这在应用补丁之前是不可用的.

我希望大约10天前我找到了这个,所以希望这可能仍然有所帮助.