我正在尝试将edmx实体模型添加到Visual Studio 2013中的C#/ Web项目中。我的问题是该文件未创建。
我执行以下步骤:
没有创建edmx文件。(虽然它适用于SQL Server,但不适用于MySQL)
我安装了Entity Framework 6.1.2
,MySql.Data
,MySql.Data.Entities
,MySql.Data.Entity
,MySql.Web
- 全部已安装。
在尝试添加实体模型文件之前,我还重建了项目。
我已使用最新的.NET connector
安装了最新的MySQL软件包。
在Windows 7上运行:Visual Studio 2013。
任何想法如何解决这个问题?
答案 0 :(得分:67)
在尝试使用MySQL,ADO.NET(数据库优先)和EF6配置Visual Studio Professional 2017环境时,我遇到了同样的情况。
注意:请按照相同的顺序执行步骤。
如果已安装,请卸载/删除“Connector / NET”和“MySQL for Visual Studio”。
安装“MySQL for Visual Studio”v2.0.5 CTP(MySQL for Visual Studio)。 注意:在Connector / NET之前为Visual Studio安装MySQL。
安装“Connector / NET”v6.9.10(Connector/Net)。 https://i.stack.imgur.com/XOT1I.jpg注意:我首先尝试使用Connector / NET v6.8,v6.10和v8,但它们都不能与Visual Studio 2017和ADO.Net一起使用。 Here you can find all Connector Versions and Compatibilities with Visual Studio IDEs,但到目前为止这个列表不准确。
创建新的Visual Studio Professional 2017项目。
通过NuGet下载并安装“EntityFramework”v6.2.0,转到项目标签/管理NuGet包/浏览 - >实体框架。
添加对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按钮。
在实体框架提供程序下的App.config中添加MySQL EF6提供程序信息,如下所示:
<entityFramework>
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
</providers>
</entityFramework>
就是这样。 VS2017准备好了。希望这对所有人都有效,就像今天对我一样。
<强>参考强>:
答案 1 :(得分:13)
我通过以下一些步骤解决了这个问题:
使用以下命令在Package Manager控制台中从Nuget卸载MySql.Data.Entities
:
Uninstall-Package MySql.Data.Entities
从MySql连接器安装路径添加项目对最新MySql.Data.Entity.EF6.dll
的引用:C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5
答案 2 :(得分:12)
VS 2015仍然有这个bug。 它是由版本不匹配引起的。
在我的系统上,我有MySQL Connector 6.9.6 在NuGet Package Manger控制台中发出命令:
Install-Package MySql.Data.Entity
默认安装版本6.9.8。您的连接器必须与NuGet包的实际版本匹配 您可以从以下位置下载更新版本的连接器: https://www.mysql.com/products/connector/
这里选择&#34; Ado.net驱动程序for MySQL&#34;,并下载相应的版本(在本例中为6.9.8)。 重新打开Visual Studio,现在向导不会崩溃。 无需重启。
答案 3 :(得分:4)
我可以通过执行以下操作来解决此问题:
答案 4 :(得分:4)
从其他人的答案中获取有关NuGet版本控制的建议。
我通过删除Nuget安装的.Data
和Data.Entitiy.EF6
解决了这个问题。
然后右键点击“参考文献”并浏览:
C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.dll
和
C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.Entity.EF6.dll
然后,我可以使用.edmx模型完成ADO.Net向导。
答案 5 :(得分:3)
我知道解决方案。
Nuget安装了MySql.Data。*软件包的边缘版本,而你可能有以前版本的连接器(在我的情况下,软件包是v.6.9.6,连接器是6.9.5)。这就达到了版本不匹配的程度。
请注意,如果您在NuGet中使用 Install-Package MySql.Data.Entities ,您将获得更新版本,如6.8.3,因此您必须添加自己参考,并密切关注你想要添加到解决方案中的那个。
答案 6 :(得分:2)
使用MySQL Connector 6.9.8.0时遇到了同样的问题。虽然我的所有版本都匹配,但仍然失败了。我在MySQL连接器之后安装了新版本的Visual Studio(从2010年到2013年)。对我来说,解决方案是卸载MySQL Connector for .NET,然后重新安装它(完全相同的版本)。然后重新启动Visual Studio。
似乎这是同一问题的另一个版本。
答案 7 :(得分:1)
您可以执行此解决方案:
这对我有用:)
答案 8 :(得分:1)
这用于ASP.NET MVC应用程序,该应用程序没有app.config文件。 我不会叙述失败的尝试,但是对我有用的是:-
<提供者invariantName =“ MySql.Data.MySqlClient” type =“ MySql.Data.MySqlClient.MySqlProviderServices,MySql.Data。实体框架”>
删除或注释掉其他任何'
重建项目。
再次尝试使用向导。
这对我来说很有效。
祝你好运!
答案 9 :(得分:0)
尝试另一件事:
---&gt;通过nuget安装entityframework 6.2.0。
---&gt;在您的web.config / app.config文件中验证您拥有System.Data.SqlServerCe.4.0
提供程序。如果没有安装,则通过nuget安装,与之前安装的实体框架完全相同(本例中为6.2.0)。
---&gt;然后添加引用:(在本例中来自连接器/ NET版本6.9.10)
C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.dll
和C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.Entity.EF6.dll
并重建。
---&gt;尝试添加此提供程序:
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
再次重建。
---&gt;最后,尝试使用新连接添加.edmx文件。
这适用于我的情况,我在一台全新的笔记本电脑中安装了VS2017和MySQL,并遇到了同样的问题。
答案 10 :(得分:0)
我从以下位置更改了我的web.config文件:
<提供者invariantName =“ MySql.Data.MySqlClient” type =“ MySql.Data.MySqlClient.MySqlProviderServices,MySql.Data.EntityFramework,Version = 8.0.11.0,Culture = neutral,PublicKeyToken = c5687fc88969c44d” />
收件人:
答案 11 :(得分:0)
我遇到了从MySql版本6升级到版本8.0.17.0的问题。我为此苦苦挣扎了近两天,尝试所有旧方法,直到遇到this article。 如果您使用的是EF6和8.0版。根据这篇文章的内容:
Oracle将v8.x的包重命名为MySql.Data.EntityFramework。您需要卸载MySql.Data.Entity并安装MySql.Data.EntityFramework。
希望这篇新文章对您有所帮助。
答案 12 :(得分:0)
第1步
在https://downloads.mysql.com/archives/c-net/
上安装MySQL Connector / NET 版本6.8.4在https://dev.mysql.com/downloads/windows/visualstudio/
上安装MySQL for Visual Studio第2步
添加后代:
第3步
将代码(如下所示)添加到web.config
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient"></remove>
<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.8.4.0, Culture=neutral" />
</DbProviderFactories>
</system.data>