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>
3条答案
按热度按时间64jmpszr1#
我找到了最好的解决办法。
我将目标.net framework更改为4.5.2(在项目属性中)
将mysql.data library更改为v6.10.8(nuget)
i5desfxk2#
对于升级到vs2019并安装mysql for visualstudio 1.2.9的用户,需要在
.edmx
文件(右键单击.edmx
文件,选择Open With...
然后选择XML (Text) Editor
):以下内容:
当我试图打开一个
.edmx
升级后的文件,所以我从头创建了一个新的,然后运行diff
看看发生了什么变化。bcs8qyzn3#
我找到了解决方案,问题是.net连接器的版本和dll的版本不兼容。
在我的例子中,项目使用的是mysql.data dll的版本6.9,但是连接器的版本是8.0。所以我用正确的连接器(相同的版本)替换了.net连接器。