MicrosoftEntityFrameworkCore не может найти миграции из сборки - PullRequest
0 голосов
/ 27 апреля 2019

Я использую ядро ​​Entity Framework Ver. 2.2.4, и я поддерживаю отдельную сборку для поддержки созданных миграций. Во время запуска приложения, когда я пытаюсь выполнить context.Database.Migrate(), я получаю следующее сообщение в журнале вывода

No migrations were found in assembly 'MyProject.Core'.

Я включил optionsBuilder.UseSqlite(GetConnectionString(), builder => builder.MigrationsAssembly("MyProject.Core"));, чтобы загрузить соответствующую сборку для поиска миграций, но не повезло. Есть идеи, что происходит?

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Изучив исходный код EF Core, я понял, в чем проблема.Проблема была с моим классом контекста БД приложения, т.е. AppDbContext:DbContext.У меня был этот класс в моем основном проекте, помеченный как абстрактный, и позже я стал производным от класса в проекте Android для определения строки подключения.Похоже, EF Core будет игнорировать все миграции, отмеченные атрибутом [DbContext(typeof(AppDbContext))], содержащим абстрактные типы контекста БД.Как только я сделал свой класс контекста БД конкретным, мои миграции начали работать.

0 голосов
/ 30 апреля 2019

Ссылка на вашу сборку миграции из вашего проекта.

Если вы не можете, потому что это вызывает циклическую зависимость, установите выходной путь вашей сборки миграции в каталог вашего основного проекта: (или скопируйте его там иным способом)

<PropertyGroup>
 <BaseOutputPath>..\MyStartupProject\bin\</BaseOutputPath>
</PropertyGroup>
...