Я пытаюсь вызвать библиотеку доступа к данным .Net 4.7 (которая использует Entity Framework 6) из нового веб-приложения Asp Net Core 2.0.
Проблема в том, что EF6 не может заполучить DbProviderFactory. Моя рабочая теория заключается в том, что это должно быть предусмотрено в app/web.config вызывающей программы. Ошибка, которую я получаю:
System.TypeLoadException: «Не удалось загрузить тип System.Data.Common.DbProviderFactories из сборки System.Data, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089».
Чтобы обойти эту проблему, я создал класс DbConfiguration:
public class MyDbConfiguration : DbConfiguration
{
public MyDbConfiguration()
{
SetProviderFactory("System.Data.SqlClient", System.Data.SqlClient.SqlClientFactory.Instance);
SetProviderServices("System.Data.SqlClient", SqlProviderServices.Instance);
}
}
[DbConfigurationType(typeof(MyDbConfiguration))]
public class MyDbContext : DbContext, IMyDbContext
{
public MyDbContext(string connectionString)
: base(connectionString)
{
}
Точка останова показывает, что она правильно выполняет MyDbConfiguration, но все равно выдает ошибку. Я установил пакеты System.Data.SqlClient и System.Data.Common в веб-приложении .Net Core.
Я не нашел ничего, что явно говорило бы о том, что то, что я пытаюсь сделать (в общем), невозможно, поэтому я работаю исходя из предположения, что что-то не так с моей реализацией DBConfiguration. Пожалуйста, может кто-нибудь указать мне в правильном направлении?