Использование ядра EF и EF6 бок о бок - PullRequest
1 голос
/ 16 октября 2019

У меня есть решение .NET Core 3.0, которое содержит 5 проектов. В одном из проектов используется EF6, а в другом - EF Core, поэтому EF6 и EF Core используются бок о бок. Visual Studio настолько свеж, насколько это возможно (16.3.5). Пытаясь создать миграцию для проекта, который использует EF6 и выполняя команду Add-Migration на моем ноутбуке с Windows 10, я вижу предупреждающее сообщение: «Установлены и Entity Framework 6, и Entity Framework Core. Инструменты Entity Framework 6Выполнение. Использовать EntityFrameworkCore \ Update-Database для Entity Framework Core ", но все идет хорошо и миграция завершается успешно.

Команда Get-Module отображает следующую таблицу:

---------- -------    ----                                ----------------                                                                            
Script     6.3.0      EntityFramework6                    {Add-EFDefaultConnectionFactory, Add-EFProvider, Add-Migration, Enable-Migrations...}
Script     3.0.0      EntityFrameworkCore                 {Add-Migration, Drop-Database, Enable-Migrations, Get-DbContext...}
Script     2.0.0.0    NuGet                               {Add-BindingRedirect, Find-Package, Get-Package, Get-Project...}
Script     0.0        profile

На другой рабочей станции с Windows 7 на борту, выполнив ту же команду, я вижу почти ту же таблицу, но с пустым списком командлетов, экспортированных EF6:

---------- -------    ----                                ----------------                                                                            
Script     6.3.0      EntityFramework6                    
Script     3.0.0      EntityFrameworkCore                 {Add-Migration, Drop-Database, Enable-Migrations, Get-DbContext...}
Script     2.0.0.0    NuGet                               {Add-BindingRedirect, Find-Package, Get-Package, Get-Project...}
Script     0.0        profile 

В конце концов, в таком случае я не могувыполнить миграцию в проекте, связанном с EF6. Как я мог это исправить? Ни 'Add-Migration', ни 'EntityFramework \ Add-Migration', ни 'EntityFrameworkCore \ Add-Migration' не будут работать.

ОБНОВЛЕНИЕ 17 октября 2019 Мне кажется, что мой VSустановка повреждена. Хорошей новостью является то, что EF6.3 поставляется с утилитой ef.exe, которая заменяет migrate.exe и позволяет разработчику создавать миграции с использованием командной строки вне VS IDE.

1 Ответ

0 голосов
/ 16 октября 2019

Создайте дополнительное решение (я), используя только свой EF6 или только свой зависимый от EFCore проект (ы), и выполните действия, зависящие от версии, при использовании этого решения.

...