2013-11-27 1 views
11

Мы используем Entity Framework 4.4 и используем миграции. База данных уже существует, и нам необходимо регулярно ее обновлять. Однако метод семени не вызывается, поэтому значения поиска не добавляются.Метод сущности Framework Framework не называется

Код выглядит следующим образом:

internal sealed class Configuration : DbMigrationsConfiguration<MyDbContext> 
{ 
     public Configuration() 
     { 
      AutomaticMigrationsEnabled = false; 
      SetSqlGenerator("System.Data.SqlClient", new OurSqlServerMigrationSqlGenerator()); 
     } 

     protected override void Seed(KinectionDbContext context) 
     { 
      SeedLookupTables(context); 
     } 

     private static void SeedLookupTables(KinectionDbContext context) 
     { 
      context.Titles.AddOrUpdate(t => t.Value, 
       new Title {Value = "Mr"}, 
       new Title {Value = "Mrs"}, 
       new Title {Value = "Miss"}, 
       new Title {Value = "Ms"}, 
       new Title {Value = "Dr"} 
      ); 

      context.SaveChanges(); 
     } 

} 


public class MyDbContext : ObjectContext 
    { 
     public MyDbContext() 
     { 

     } 

     static MyDbContext() 
     { 
      Database.SetInitializer<KinectionDbContext>(null); 
     } 

     public DbSet<Title> Titles { get; set; } 

} 

И мы называем:

Add-Migration Seed 

Но миграция приходит пустой.

У кого-нибудь есть идея, почему семя вызывается cmot и почему дополнительные значения в таблице поиска не обнаруживаются?

Благодаря N

ответ

23

Метод Миграции семян

запускается всякий раз, когда команда Update-Database PowerShell является выполнена

Вам нужно позвонить Update-Database не Add-Migration

Add-Migration SCA ffolds файл миграции, содержащий команды для переноса базы данных в новую версию. Он пуст, потому что нет никаких изменений схемы. Вам не нужно звонить Add-Migration перед вызовом Update-Database, если все, что вы хотите сделать, это семя

Ссылки:

Code first Db initialization strategies.
Code first migrations recommended reading
Managed Migrations
Database initializer and Migrations Seed methods

+0

Спасибо, что работали :). Однако есть ли способ получить sql-скрипт для посева? –

+0

См. Ответ здесь: http://stackoverflow.com/a/18190509/150342 – Colin

+0

update-migration возвращает мешок ошибок, потому что в моем методе семени я использовал файлы или другую логическую реализацию –

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