gpt4 book ai didi

c# - 如何解决 Entity Framework 中 system.data 配置的问题

转载 作者:行者123 更新时间:2023-11-29 02:10:28 25 4
gpt4 key购买 nike

如果将我的项目更新为 mysql.data 8.0.13 和 MySql.Data.EntityFramework。目标框架是 .net 4.5.2 EF 在 6.2我现在有一个奇怪的行为,我必须将 system.data 部分添加到我的配置中

  <system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data" />
</DbProviderFactories>
</system.data>

然后它在一些机器上运行。但在其他人身上你会得到以下错误。 (翻译成英语,因为系统是德语)

System.Configuration.ConfigurationErrorsException: An error occurred when creating the configuration section handler for system.data: The column 'InvariantName' has the restriction that it must be unique. The value 'MySql.Data.MySqlClient' already exists. 

因此,如果我删除这部分配置,它就可以工作。但在另一台机器上它说。

System.ArgumentException: The ADO.NET provider with the invariant name 'MySql.Data.MySqlClient' was either not registered on the computer or in the application configuration file, or could not be loaded.  

是否有任何解决方案或检查可能?因为我对同一台电脑上的不同用户也有奇怪的行为(使用 clickonce 推出)

EF的配置部分

  <entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework"></provider>
</providers>
</entityFramework>

这应该适用于任何电脑。我也不知道如何添加更多信息,因为我真的不知道问题出在哪里。整个周末都在努力解决这个问题。

最佳答案

我不太确定,但你可以试试这个:

来自 System.data 元素:

添加这个:

<remove invariant="MySql.Data.MySqlClient" />

看起来像:

<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.8.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>

您可以包含版本或像您一样删除。

但是如果您包含版本,请确保它是您正在使用的 MYSQL 版本。

关于c# - 如何解决 Entity Framework 中 system.data 配置的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54176401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com