Если обновил мой проект до mysql.data 8.0.13 и MySql.Data.EntityFramework. Целевой Framework является .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>
Это должно работать на любом компьютере. Я также не знаю, как добавить больше информации, потому что я действительно не знаю, в чем проблема. Пытался исправить это все выходные.