Я пытаюсь выполнить миграцию из кода. Я создал свои модели и позволили-миграцию, а затем добавил начальную миграцию, эта начальная миграция содержит все создание таблиц и т.д.
Код структуры Entity Framework - исходный код миграции не работает
public partial class Initial : DbMigration
{
public override void Up()
{
CreateTable(..........
}
public override void Down()
{
DropTable(...........
}
}
Затем я попробовал команду Update-Database с визуальной студии, которая прекрасно работает, создает базы данных и запускает первоначальную миграцию.
Затем я удаляю базу данных из Sql Studio. Затем я запустить приложение консоли, которая вызывает класс Менеджер миграции
// MigrationManager class
public static bool PerformMigration(string migrationId)
{
bool success = false;
try
{
DbMigrationsConfiguration<MyDbContext> config = new Configuration();
....
DbMigrator migrator = new DbMigrator(config);
migrator.Configuration.AutomaticMigrationsEnabled = false;
if (string.IsNullOrEmpty(migrationId))
migrator.Update(); --> fails saying pending migration
else
migrator.Update(migrationId);
success = true;
}
catch (Exception e)
{
success = false;
LastException = e.Message;
}
return success;
}
Update() терпит неудачу со следующей ошибкой:
Невозможно обновить базу данных в соответствии с текущей моделью, потому что есть ожидающие изменения и автоматическая миграция выключен. Либо записывать изменения ожидающих моделей в миграцию на основе кода, либо разрешать автоматическую миграцию. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true, чтобы включить автоматическую миграцию.
//Configuration.cs
internal sealed class Configuration : DbMigrationsConfiguration<MyDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
protected override void Seed(WorkflowConfigurationDbContext context)
{
SeedData(context);
}
private void SeedData(){...}
}
public class MyDbContext : DbContext
{
public MyDbContext()
{
}
public DbSet....
}
Когда я пошагово вызова Update(), он переходит в конфигурации() конструктор и MyDbContext() конструктор, но не после того, что, кажется, его не пытается Начальные миграций на всех.
Спасибо за ваш ответ, я уже пробовал это без успеха :( – wk4questions
Отредактировал свой ответ: как насчет безопасности? –