I have a C# Library developed using .Net Standard 2.1 and this library is called in a test console application built on .Net Core 3.0. But at run time, the GetFactory is throwing an exception.
private DbConnection connection;
connection = DbProviderFactories.GetFactory("MySql.Data.MySqlClient").CreateConnection();
Exception:
DbProviderFactories.GetFactory The specified invariant name 'MySql.Data.MySqlClient' wasn't found in the list of registered .NET Data Providers.
I have installed MySqlConnector 1.2.1. But it didn't help. And also adding the below in app.config file.
<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.23.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
The XML you've shown for app.config only works in .NET Framework applications.
For .NET Core 2.1 or later, call
DbProviderFactories.RegisterFactory
. The exact arguments you pass will depend on the factory you want to register (and the NuGet packages you have installed):For more information, see Using DbProviderFactories.