获取edmx错误当尝试为MySQL模型打开edmx设计器时,无法将类型为'MySql.Data.MySqlClient.MySqlProviderServices'的对象转换为类型为'System.Data.Common.DBProviderServices'。我在项目中既有用于SQL服务的Entity Framework 6,也有对MySQL的引用。
这是我在app.config中拥有的
<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>
<system.data>
<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=8.0.13.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
答案 0 :(得分:0)
我有解决方案,问题是.net连接器版本与dll版本之间不兼容。
在我的情况下,项目使用的是MySql.Data dll的6.9版本,但连接器的版本是8.0。因此,我已经用正确的.net连接器(相同版本)替换了。
答案 1 :(得分:0)
我找到了最佳解决方案。
我将目标.NET Framework更改为4.5.2(在“项目属性”中)
将MySQL.Data库更改为v6.10.8(NuGet)
答案 2 :(得分:0)
对于那些升级到VS2019并为Visual Studio 1.2.9安装MySQL的用户,您需要在.edmx
文件中编辑以下行(在VS中右键单击.edmx
文件,选择{ {1}},然后选择Open With...
):
XML (Text) Editor
到以下内容:
<DesignerProperty Name="UseLegacyProvider" Value="true" />
当我尝试在升级后打开 <DesignerProperty Name="UseLegacyProvider" Value="false" />
文件时开始出现完全相同的错误消息,因此我从头开始创建了一个新文件,然后运行.edmx
来查看更改了。