首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能为实体框架6使用MySQL连接

不能为实体框架6使用MySQL连接
EN

Stack Overflow用户
提问于 2014-01-18 15:37:25
回答 10查看 75.5K关注 0票数 62

我试图在MySQL中使用实体框架6。

我确实安装了VisualStudio1.1.1和MySQL .Net连接器6.8.3的MySQL插件。

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

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

这意味着当前安装的版本与实体框架6不兼容。在此之后,我安装了最新的连接器和插件。还有别的事要做吗?

谢谢

编辑

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

然后我可以看到我为我的实体模型建立的连接,但是当我要选择实体版本时,我得到了这个消息。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2014-01-19 14:35:46

最新编辑

窃听器已经修好了。

克里斯的评论:

2015-11-07年,你可以在不编辑任何文件或做奇怪的事情的情况下让它全部工作。使用MySQL for Windows并包括Visual支持和最新的Connector.Net。安装后一定要更新,您将得到每个更新的最新版本(1.2.5和6.9.8)。使用NuGet安装EntityFramework、MySql.Data和MySql.Data.Entity。最后,通过添加一个Ado.Net实体模型,构建并享受代码优先的逆向工程优点。

原始答案

我发现它是来自MySQL的一个bug。

下面是解释工作的链接。

在安装VS 2013的计算机上,VS插件(1.1.3GA)和连接器/网 在执行步骤之前关闭所有VS实例。 在Windows窗口中,转到此路径或安装连接器/net二进制文件的任何地方 C:\Program (x86)\MySQL\MySQL连接器网6.8.3\Assemblie\v4.5\ 复制文件: MySql.Data.Entity.EF6.dll 并将其粘贴到此文件夹 C:\Program (X86)\MicrosoftVisualStudio12.0\Common7\IDE\PrivateAssemblies 如果它要求你覆盖它,请这样做。 您需要管理员权限才能覆盖该文件。 然后您可以再次尝试为您的模型生成脚本。 重要的是,您有1.1.3版本的VS插件安装,因为这个解决办法是为了这一点。

不幸的是,它对我不起作用,所以我降级到实体框架5,直到他们修复这个问题。

编辑

最后,现在起作用了。

我必须添加以下三个DLL:

  • C:\Program (x86)\MySQL\MySQL连接器网6.8.3\Assemblies\v4.5\MySql.Data.dll
  • C:\Program (x86)\MySQL\MySQL连接器网6.8.3\Assemblies\v4.5\MySql.Data.Entity.EF6.dll
  • C:\Program (x86)\MySQL\MySQL连接器网6.8.3\Assemblies\v4.5\MySql.Web.dll

然后,我将web配置中的EntityFramework部件更改为:

代码语言:javascript
复制
<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>

不要忘记重新构建,您应该能够使用MySQL创建实体框架6模型。

重要

确保安装了MySQL for visual studio 1.1.3和MySQL连接器.net 6.8.3

票数 58
EN

Stack Overflow用户

发布于 2017-02-20 12:32:29

2017年解决方案

安装Nuget软件包:

代码语言:javascript
复制
Install-Package EntityFramework
Install-Package MySql.Data.Entity -Version 6.9.9

安装VisualStudio1.2.6的MySQL - https://dev.mysql.com/downloads/windows/visualstudio/

Web.Config的变化

代码语言:javascript
复制
<EntityFramework>

至:

代码语言:javascript
复制
<EntityFramework codeConfigurationType = "MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">

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

代码语言:javascript
复制
<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>

**重启Visual **

我的设置:

  • Microsoft Visual Studio Community 2015
  • 点网框架4.5.2
  • Asp.Net MVC 5.2.3.0
  • MySql服务器5.6
票数 11
EN

Stack Overflow用户

发布于 2015-04-23 02:47:27

不知道这对你们来说是否仍然是个问题,但是上面的解决方案对我都没有用.直到我找到这个:

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.Web - 6.9.6 (02/24/2015)

NuGet正确地完成了工作,并相应地更新了Web.Config,用任何需要的内容填充了"entityFramework“部分。

对于VS2013来说,它只是从“根本不工作”转到“完全功能”。对于VS2012,可以使用“数据库代码优先”,这在应用修补程序之前是不可用的。

我希望我在大约10天前就找到了这个,所以希望这还能有所帮助。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21206184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档