我对MySql连接器(6.8.3)和EF6有一个奇怪的问题。我正在从事一个WebApi项目,在那里我使用MySql和EF6以及数据库优先方法。在我将数据库从“test”数据库更改为“Production”数据库(仅是连接字符串中的数据库名称)并更新模型之后,一切都进行了改进,直到我将数据库从“Test”数据库更改为“Production”数据库,并更新了模型,以确保没有任何损坏!之后,它无法连接到数据库。因此,我更改了连接字符串并重新构建了解决方案,然后得到了一堆“映射”警告。我删除了模型,并试图再次从数据库中创建模型。现在,我收到以下消息
您的项目引用了实体框架的最新版本;但是,无法为您找到与此版本兼容的实体框架数据库提供程序。退出此向导,安装兼容的提供程序,并在执行此操作之前重新构建项目。
下面是配置文件
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<system.data>
<DbProviderFactories>
<clear/>
<remove invariant="MySql.Data.MySqlClient"/>
<add name="MySql.Data.MySqlClient" description="ADO.Net driver for MySQL" invariant="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data,Version=6.8.3.0, Culture=neutral,PublicKeyToken=c5687fc88969c44d"/>
</DbProviderFactories>
</system.data>
<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" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>我试着从Nuget重新安装连接器和EF,但是没有什么改变。谁能告诉我发生了什么事吗?
谢谢
发布于 2014-02-21 09:46:47
我有一个类似的问题,我有一个MySql连接器引用到我的项目与Nuget。但是服务器本身安装了另一个版本的MySql连接器。因此,应用程序优先考虑安装在服务器的GAC中的MySql连接器。
你要做的就是
卸载服务器中的MySql连接器
或
在服务器上安装合适的MySql连接器(在您的情况下是v6.8.3),然后卸载其余的连接器
或
将提供程序类型更改为安装在服务器上的版本。
发布于 2014-03-12 23:53:38
该死的,也有同样的问题。
我对.NET环境非常陌生,所以我不知道包管理器和所有程序集是如何工作的,但是当我为MySQL连接器导入程序集时,它似乎用错误的提供程序参数更新了"web.conf“文件。
在我的例子中,在EF v6.8.3.0中使用EF6和MySQL连接器,下面的方法对我有效:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>
</providers>
</entityFramework>希望它能帮到别人
发布于 2015-07-01 13:33:39
我知道问题是什么,您必须做接下来的步骤: 1.右键单击项目2.管理NuGet包3.删除MySql.Data 4.现在您可以做您想做的事情了5.在完成之后,返回到管理NuGet包并添加MySql.Data.Entity :)
祝你好运--伊利亚西
https://stackoverflow.com/questions/21680548
复制相似问题