Исключение выдается при использовании библиотеки классов Entity Framework из проекта ASP.NET Core 2.2 Web API - PullRequest
1 голос
/ 05 июля 2019

В моем решении 2 проекта:

  1. Проект ASP.NET Core 2.2 Web API
  2. Библиотека классов .NET Framework

В моей библиотеке классов я создал свои сущности, используя подход, основанный на базе данных. В моем проекте Web API я ссылаюсь на библиотеку классов.

Когда я запускаю приложение, в этот момент выдается исключение:

return entities.IP_Types.ToList();

Это исключение ниже:

System.ArgumentException: «Поставщик ADO.NET с инвариантным именем« System.Data.SqlClient »либо не зарегистрирован в файле конфигурации компьютера или приложения, либо не может быть загружен. Смотрите подробности во внутреннем исключении. '

Мой app.config файл настроен правильно. У меня есть следующий код:

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

Ответы [ 2 ]

1 голос
/ 05 июля 2019

Мне удалось преодолеть исключение, добавив эту строку в основной метод Программы:

DbProviderFactories.RegisterFactory("System.Data.SqlClient", SqlClientFactory.Instance);

0 голосов
/ 05 июля 2019

Проверьте строку подключения к вашей базе данных.Либо в нем отсутствует providerName , либо в файле конфигурации отсутствуют параметры для поставщика entityFramework.

<entityFramework>
    <providers>
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
</entityFramework>

Чтобы узнать больше о конфигурации соединения, ознакомьтесь с Поставщиками базы данных EF

...