Я использую Entity Framework Code First с помощью AutomaticMigrationsEnabled = true
:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DbContext, MigrateDBConfiguration>());
//////////////////////////////////
public class MigrateDBConfiguration : System.Data.Entity.Migrations.DbMigrationsConfiguration<DbContext>
{
public MigrateDBConfiguration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
}
При первом запуске проекта создается база данных и таблицы, как и ожидалось. После изменения моей модели путем добавления или удаления полей я запустил Add-Migration
. Класс Migration создан, но после запуска проекта возникает исключение:
Исключение типа "System.InvalidOperationException" возникло в EntityFramework.dll, но не было обработано в коде пользователя
Дополнительная информация: модель, поддерживающая контекст DBContext, имеет изменено с момента создания базы данных.
ОБНОВЛЕНИЕ: В соответствии с указаниями в ответе arturo menchaca я изменил свой код следующим образом:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DBContext, MigrateDBConfiguration<DBContext>>());
...
После изменения возникает исключение:
В базе данных уже есть объект с именем "MyTable".
Как я могу применить миграцию моей базы данных?