Как получить класс DbContext в EF Core без использования EF 6? - PullRequest
0 голосов
/ 11 июня 2018

РЕДАКТИРОВАТЬ:

У меня проблема, потому что диспетчер пакетов жалуется, что «установлены команды Entity Framework 6.x и Entity Framework Core».Но я не думаю, что это происходит из пакета EntityFrameworkCore NuGet.У меня есть проект веб-сайта, который использует DbContext.Он получает его из пакета Microsoft.AspNetCore.App (он загружает ТОЛЬКО пакет NuGet), а проект веб-сайта использует только установленные команды EF Core.Я попытался использовать этот пакет в своем библиотечном проекте, и у меня все та же проблема.Таким образом, моя проблема, по-видимому, не в пакете NuGet.

По-видимому, необходимо провести дополнительное расследование ...


Оригинальный вопрос:

Я перевожу библиотекукод из .NET 4.6.2 в .NET Core 2.1.Этот код имеет ссылки на DbContextSystem.Data.Entity).Чтобы получить эквивалентное ядро ​​.NET DbContextMicrosoft.EntityFrameworkCore), я могу загрузить пакет NuGet Microsoft.EntityFrameworkCore.SqlServer.Проблема в том, что этот пакет, по-видимому, добавляет EF6 в дополнение к EF Core, поэтому, когда я пытаюсь выполнить команду update-database в консоли диспетчера пакетов, он жалуется, что «установлены и Entity Framework Core, и Entity Framework 6».

Предположительно, я могу понять команду диспетчера пакетов, которая работает вокруг этого раздражения, но у меня нет (очевидной) необходимости в EF 6, и я так же быстро выясню, как ввести DbContext БЕЗ вводаEF 6.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Я понял это.Я посмотрел на файл csproj, и там была посторонняя строка, которая, очевидно, осталась от более ранней работы с пакетами NuGet:

<PackageReference
    Include="Microsoft.VisualStudio.Web.CodeGeneration.Design"
    Version="2.1.0" PrivateAssets="All" />

Поскольку у этой библиотеки нет причин иметь дело с генерацией веб-кода, я удалилэта строка из файла csproj, и теперь сообщение о загрузке инструментов EF 6 волшебным образом исчезло.Пойди разберись ...

0 голосов
/ 11 июня 2018

Этот код имеет ссылки на DbContextSystem.Data.Entity)

Кажется, это ваша проблема.Выбросьте его.

Правильный DbContext живет в Microsoft.EntityFrameworkCore пространстве имен, из того же пакета nuget.

Возможно, вам следует прочитать this :

Убедитесь, что у вас удален старый пакет nuget.

Nuget

...