edmx错误“无法强制转换类型为“mysql.data.mysqlclient.mysqlproviderservices”“system.data.common.dbproviderservices”的对象”

ztmd8pv5  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(722)

getting edmx error在尝试打开用于mysql模型的edmx设计器时,无法将“mysql.data.mysqlclient.mysqlproviderservices”类型的对象强制转换为“system.data.common.dbproviderservices”类型。我在项目中既有EntityFramework6forSQL服务,也有对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>
64jmpszr

64jmpszr1#

我找到了最好的解决办法。
我将目标.net framework更改为4.5.2(在项目属性中)
将mysql.data library更改为v6.10.8(nuget)

i5desfxk

i5desfxk2#

对于升级到vs2019并安装mysql for visualstudio 1.2.9的用户,需要在 .edmx 文件(右键单击 .edmx 文件,选择 Open With... 然后选择 XML (Text) Editor ):

<DesignerProperty Name="UseLegacyProvider" Value="true" />

以下内容:

<DesignerProperty Name="UseLegacyProvider" Value="false" />

当我试图打开一个 .edmx 升级后的文件,所以我从头创建了一个新的,然后运行 diff 看看发生了什么变化。

bcs8qyzn

bcs8qyzn3#

我找到了解决方案,问题是.net连接器的版本和dll的版本不兼容。
在我的例子中,项目使用的是mysql.data dll的版本6.9,但是连接器的版本是8.0。所以我用正确的连接器(相同的版本)替换了.net连接器。

相关问题