как использовать EF6.0 в проекте библиотеки классов .netframework 4.6.2, указанном в проекте ASPNET Core 2.0 - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь использовать EF6.0 в проекте библиотеки классов .Net Framework 4.6.2 (проект репозитория), где DBContext находится рядом с репозиторием, а объекты созданы в другом проекте (.NET Framework 4.6.2)используя обратный код Сначала POCO, репозиторий будет называться через другой (framework 4.6.2) проект менеджера, на который есть ссылка в ASPNET Core 2.0 SPA Project, где StructureMap используется как IoC.

Первое, с чем я столкнулся, была проблемапередача строки соединения в DBContext внутри проекта репозитория, так как я хочу зарегистрировать сервисы (DBContext, Repository) внутри проекта репозитория, а не из ASPNET Core Startup.cs, причина этого состоит в том, чтобы не подвергать DBContext проекту внешнего интерфейса,В любом случае, я временно запрограммировал строку подключения в проекте Repo: «Спасибо, если есть другой способ!»

Основная проблема, с которой я сталкиваюсь в этом проекте, возникает, когда отправляется запрос на сбор списка«Продукты», доходит доПроект репозитория, в котором оператор Linq использует _dbcontext.Product, затем выдано сообщение об ошибке

NotSupportedException: невозможно определить имя поставщика для фабрики поставщиков типа 'System.Data.SqlClient.SqlClientFactory'.Убедитесь, что поставщик ADO.NET установлен или зарегистрирован в конфигурации приложения.

Объект Entityframework зарегистрирован внутри проекта репозитория, но не внутри проекта ASPNET Core 2.0, так как при возникновении ошибки конфликта Nugetустановлен в ASPNET Core 2.0.

также я пытался установить «System.Data.SqlClient» из Nuget в ASPNET Core2.0, но ошибка по-прежнему выдает.

Любая идея о том, как использовать EF6.0 в .netframework 4.6.2 проекте библиотеки классов, указанном в проекте ASPNET Core 2.0.

1 Ответ

0 голосов
/ 09 января 2019

Статья Microsoft Начало работы с ASP.NET Core и Entity Framework 6 содержит шаги, необходимые для использования Entity Framework 6 из проекта ASP.NET Core.

Относительно NotSupportedException, Я бы сослался на связанный вопрос System.NotSupportedException: невозможно определить имя поставщика для фабрики поставщиков типа 'System.Data.SqlClient.SqlClientFactory' .

Я столкнулся ста же проблема, потому что мне не удалось изменить файл Core .csproj с <TargetFramework>netcoreapp2.2</TargetFramework> на <TargetFramework>net471</TargetFramework> (что в статье говорилось мне, но по некоторым причинам я думал, что в Core 2.2 это не нужно).

Я предоставил больше объяснений и подробностей в опубликованном объяснении / ответе *1016* на вопрос, на который я ссылался выше.

...