Перенос базы данных SQLite из другой сборки с использованием EF-Core - PullRequest
0 голосов
/ 22 января 2020

Я занимаюсь разработкой C# проекта с использованием EF Core. Решение содержит два проекта:

• Проект A: проект WinForms для запуска приложения

• Проект B: проект для управления базой данных SQLite

Проект B содержит DbContext, миграции и так далее.

DbContext-Class:

public class ContextTest : DbContext 
{
    public DbSet<LogTest> LogTests { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder options) 
    {
       string sqlitePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log.db");
       options.UseSqlite($"Data Source={sqlitePath}");
    }
} 

Класс для выполнения миграций:

public class DbMigrator 
{
    public static void ExecuteMigrations() {
        using (var context = new ContextTest()) 
        {
            context.Database.Migrate();
        }
    }
}

Если я настрою проект B в качестве запускаемого проекта, я могу выполнить миграции без любые проблемы. Но если проект A установлен в качестве начального проекта, я получаю исключение System.NullReferenceException, как только вызывается context.Database.Migrate();.

Я уже пытался установить MigrationsAssembly:

options.UseSqlite($"Data Source={sqlitePath}", 
               o => o.MigrationsAssembly(typeof(ContextTest).Assembly.GetName().Name));

Это не помогло. Мне нужно вызвать миграцию из проекта А. Может, у кого-то есть идея?

...