Я использую EF 6 и код первого в проекте
Я пытаюсь понять, используя команду 'Enable-переселений.
Примеры DbContext и Initializer приведены в простейшей форме, как показано ниже.
Когда я даю команду «включить-Миграцию»
пакета-менеджер консоли выдает ошибку, как показано ниже:, что является причиной получения «Не удалось обновить ошибка базы данных», давая включить-Миграции команду
Невозможно обновить базу данных в соответствии с текущей моделью, потому что есть ожидающие изменения и автоматическая миграция отключен , Либо записывайте ожидающие изменения модели в миграцию на основе кода, либо разрешайте автоматическую миграцию. Установите DbMigrationsConfiguration.AutomaticMigrationsEnabled в true, чтобы включить автоматическую миграцию.
Но если я не называю InitializeDatabase();
метод из конструктора MyDbContext нет возникновении ошибки и ни импорта данных или метод семян не работает.
Создана только база данных.
Я хочу узнать, в чем причина и какова средняя ошибка. Если я использую метод InitializeDatabase()
.
Спасибо
public class MyDbContext : DbContext
{
public MyDbContext():base("TestDb")
{
Database.SetInitializer(new DbContextInitializer());
InitializeDatabase();
}
protected virtual void InitializeDatabase()
{
if (!Database.Exists())
{
Database.Initialize(true);
}
}
public DbSet<TestModel> TestModels { get; set; }
}
public class DbContextInitializer : CreateDatabaseIfNotExists<MyDbContext>
{
protected override void Seed(MyDbContext context)
{
base.Seed(context);
context.TestModels.Add(new TestModel() {
Name = "Lorem",
Surname = "Ipsum"
});
}
}