Мы находимся на последних этапах переноса огромного решения на. Net Core (с 4.7.2), но мы еще не готовы к переходу на Entity Framework Core, так как мы используем таблицу иерархии для каждого типа и т. д. c. Мы используем EF code-first. Итак, проект, содержащий наши миграции DbContext и EF, теперь работает с .netstandard2.1 и ссылается на EF 6.4 (который, по-видимому, начиная с v6.3 поддерживает ядро net). Я понимаю, что инструменты EF изменились с v6.2 -> v6.4, поэтому наш традиционный способ создания EF-миграции теперь приводит к следующей ошибке в консоли диспетчера пакетов:
add -igration ТЕСТ -проектные данные
Проект "Данные" предназначен для платформы .NETStandard. Инструменты консоли диспетчера пакетов Entity Framework не поддерживают эту платформу.
После некоторого исследования я наткнулся на это , что говорит о том, что вам необходимо использовать. Net Основная сборка как фиктивный стартовый проект. После создания проекта консольного приложения .netcore 3.1 (называемого Data_Startup, который ссылается на проект Data) и небольшого изменения моей команды я теперь получаю следующую ошибку:
do tnet ef migrations add TEST - -project Data --startup-project Data_Startup - c CustomContext
Не найден DbContext с именем 'CustomContext'.
Это выглядит как минимум попытки миграции, но я сейчас застрял. Я попытался полностью квалифицировать DbContext с пространством имен и добавить класс DBContext в качестве «связанного файла» в новый фиктивный проект, но я столкнулся с той же ошибкой.
Я также пытался используйте инструмент EF 6.4: do tnet C: \ Users \ xxxx.nuget \ packages \ entityframework \ 6.4.0 \ tools \ netcoreapp3.0 \ any \ ef6.dll "миграции добавить TEST --assembly Данные
Ваш целевой проект «Данные» не ссылается на EntityFramework. Этот пакет необходим для работы основных инструментов Entity Framework. Убедитесь, что целевой проект правильный, установите пакет и попробуйте еще раз.
... несмотря на то, что он определенно установлен в проекте Data!
Что я делаю не так? Какой инструмент мне действительно нужно использовать? Это конфигурация проекта даже возможно?