Я занимаюсь разработкой 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));
Это не помогло. Мне нужно вызвать миграцию из проекта А. Может, у кого-то есть идея?