2015-01-06 3 views
4

У меня есть такая конфигурация дбEntity Framework автоматическая миграция включена не работает

public class AppDbContext : DbContext 
    { 

     public AppDbContext(string connectionStringOrName) 
      : base(connectionStringOrName) 
     { 
      Database.SetInitializer(new AppDbInitializer()); 
     } 

     public AppDbContext() 
      : this("name=AppDbContext") 
     { 

     } 

     public DbSet<User> Users { get; set; } 
     public DbSet<Log> Logs { get; set; } 
    } 

и я эта конфигурация миграции

public class AppDbInitializer : MigrateDatabaseToLatestVersion<AppDbContext,AppDbMigrationConfiguration> 
{ 
} 


    public class AppDbMigrationConfiguration : DbMigrationsConfiguration<AppDbContext> 
    { 
     public AppDbMigrationConfiguration() 
     { 
      AutomaticMigrationsEnabled = true; 
      AutomaticMigrationDataLossAllowed = true; 
     } 

     protected override void Seed(AppDbContext context) 
     { 
      if (context.Users.Any()) return; 

      AddAdmin(context, "Admin", "[email protected]"); 
     } 
    } 

И я добавил еще одно поля для входа объекта.

Can Entity Framework автоматически определяет и применяет изменения?

+0

Что это должен делать? Что оно делает? – CodeCaster

+0

Что вы пробовали, вы получаете какое-то исключение или что? Взгляните на следующую ссылку о настройке кода EF Migrations сначала: http://msdn.microsoft.com/nl-nl/data/jj591621.aspx –

+0

Entity Framework ничего не делает. Это проблема. Я знаю, что могу перенаправить перенаправление с функциями Up() и Down(). Но я хочу AutoMigration. Кстати, я забыл показать вам, как я переношу базу данных. Открытый класс AppDbInitializer: MigrateDatabaseToLatestVersion { } – cihancoskun

ответ

1

Если включена автоматическая миграция, она должна автоматически обнаруживать любые небольшие изменения в модели.

Но для больших изменений, например, добавление новой сущности, я видел вручную применить миграцию, что вы можете сделать с «Add-Migration», а затем запустить «Update-Database»

+0

Когда происходит автоматическая миграция ** точно **? Если я изменяю * int * на * int? * И сохраняю файл с классом, содержащим это свойство? Или нам еще нужно запустить * Update-Database *, но без необходимости вызова * Add-Migration xxx *? –

+0

Да, вы правы. для небольших изменений, и если включена автоматическая миграция, вызов Update-Database автоматически добавит базу данных миграции и обновления. – Bhavjot

Смежные вопросы