我正在尝试将EF 6与MySQL一起使用,并通过连接向导提供此错误消息:
您的项目引用了最新版本的Entity Framework;但是,找不到与此版本兼容的Entity Framework数据库提供程序。
在互联网上搜索这似乎是一个困扰人们的问题,但我看不出有人有解决方案。
我引用了EntityFramework 6.1.1和MySql.Data 6.9.3,Mysql.Data.Entity.EF5和MySql.Data.Entity.EF6版本6.8.3。我也用MySql.Data 6.8.3尝试过,但同样的事情发生了。
我的web.config显示以下内容:
<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 invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
任何想法或帮助都会被感激地收到 - 否则我将不得不放弃MySql并使用Sql Server,在我的日程安排中留下一个大漏洞,在我的钱包中放一个更大的漏洞: - )。
我在下面的帖子中看到过,但它似乎并不适合我:
答案 0 :(得分:2)
在我看来,您有SQL Server和MySQL的提供程序,默认连接工厂是SQL Server提供程序。你需要两个吗?如果没有,那么您可以完全删除SQL Server部分,并确保默认连接是MySQL。
另外,我注意到你没有发布配置文件的system.data部分。我工作的MySQL 6.9.3配置有这一部分。
我的配置如下:
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<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.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
</providers>
</entityFramework>