无法创建实体数据模型 - 使用MySql和EF6

Ida*_*ter 24 mysql entity-framework mysql-connector ado.net-entity-data-model visual-studio-2013

我正在尝试在Visual Studio 2013中向我的C#/ Web项目添加一个edmx实体模型.我的问题是该文件未创建.

我执行以下步骤:

  1. 为项目命名
  2. 从数据库中选择"EF Designer"
  3. 从已经测试成功连接到MySQL数据库的下拉列表(localhost)中选择连接
  4. 选中"将webc.config中的连接设置另存为"选项
  5. 我点击'下一步'然后窗口消失了,我回到了代码窗口

没有创建edmx文件.(虽然它适用于SQL Server,但不适用于MySQL)

我已经Entity Framework 6.1.2安装了,MySql.Data,MySql.Data.Entities,MySql.Data.Entity,MySql.Web-所有已安装的.

在尝试添加实体模型文件之前,我还重建了项目.

我安装了最新的MySQL软件包.NET connector.

运行:Windows 7上的Visual Studio 2013.

任何想法如何解决这个问题?

Alf*_*uez 72

尝试使用MySQL,ADO.NET(数据库优先)和EF6配置Visual Studio Professional 2017环境时,我遇到了同样的情况.

注意:请按照相同的顺序执行步骤.

  1. 如果已安装,请卸载/删除"Connector/NET"和"MySQL for Visual Studio".

  2. 安装"MySQL for Visual Studio"v2.0.5 CTP(MySQL for Visual Studio).注意:在Connector/NET之前为Visual Studio安装MySQL.

  3. 安装"Connector/NET"v6.9.10(连接器/网络). https://i.stack.imgur.com/XOT1I.jpg注意:我首先尝试使用Connector/NET v6.8,v6.10和v8,但它们都不能与Visual Studio 2017和ADO.Net一起使用.在这里,您可以找到Visual Studio IDE的所有连接器版本和兼容性,但到目前为止,此列表不准确.

  4. 创建新的Visual Studio Professional 2017项目.

  5. 通过NuGet下载并安装"EntityFramework"v6.2.0,转到项目选项卡/管理NuGet包/浏览 - >实体框架.

  6. 添加对C:\Program Files (x86)\MySQL\Connector.NET 6.9.10\Assemblies\v4.5\MySql.Data.dll 和的 引用C:\Program Files (x86)\MySQL\Connector.NET 6.9.10\Assemblies\v4.5\MySql.Data.Entity.EF6.dll; 右键单击Solution Explorer中的References并选择Add Reference/Browse - > Browse按钮.

  7. 在实体框架提供程序下的App.config中添加MySQL EF6提供程序信息,如下所示:

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

  1. 通过转到Build选项卡/ Rebuild ProjectName重建项目.

就是这样.VS2017准备好了.希望这对所有人都有效,就像今天对我一样.

参考文献:

  1. 无法创建实体数据模型 - 使用MySql和EF6

  2. 找不到'MySql.Data.MySqlClient'ADO.NET提供程序的实体框架提供程序

  • 这应该是公认的答案.详细记录并详细解释所有内容.解决了我的问题.我知道这是在"接受的答案"之后添加的,但现在应该替换它.谢谢! (6认同)
  • 我希望我可以投票10万次! (2认同)

Loc*_*ynh 13

我通过以下一些步骤解决了这个问题:

  1. MySql.Data.Entities使用以下命令在Package Manager控制台中从Nuget 卸载: Uninstall-Package MySql.Data.Entities

  2. MySql.Data.Entity.EF6.dll从MySql连接器安装路径添加项目引用到最新版本:C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5


Lar*_*ård 12

VS 2015仍然有这个bug.它是由版本不匹配引起的.

在我的系统上,我有MySQL Connector 6.9.6.
在NuGet Package Manger控制台中发出命令:

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

默认情况下安装版本6.9.8.您的连接器必须与NuGet包的实际版本匹配.
您可以从以下网址下载更新版本的连接器:https: //www.mysql.com/products/connector/

在这里选择"用于MySQL的Ado.net驱动程序",并下载相应的版本(在本例中为6.9.8).重新打开Visual Studio,现在向导不会崩溃.无需重启.


小智 5

这适用于 ASP.NET MVC 应用程序,该应用程序没有 app.config 文件。我不会重述失败的尝试,但对我有用的是以下内容:-

  • 在 VS运行的情况下,下载并安装“MySQL for Visual Studio 2.0.5”——撰写本文时的最新版本。
  • 启动 VS2017 并卸载“MySql.Data.Entity”和“MySql.Data”NuGet 包(如果之前已在 VS2017 中安装)。
  • 使用上面的链接下载并安装最新的 MySql 连接器/NET(撰写本文时版本为 8.0.13)。
  • 在您的项目中,添加对“MySql.Data.dll”和“MySql.Data.EntityFramework.dll”dll 的引用,如 Lopez93 上面所述,请注意,提到的“MySql.Data.Entity.EF6.dll”不存在于8.0.13,仅“MySql.Data.EntityFramework.dll”。
  • 现在编辑 web.config 文件并确保在该部分中有这一行

<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework " >

  • 删除或注释掉任何其他 '<provider invariantName="MySql.Data.MySqlClient"...' 行。

  • 重建项目。

再次尝试使用向导。

对我来说这有效。

祝你好运!