Używamy Entity Framework 4.4 i używamy migracji. Baza danych już istnieje i musimy ją aktualizować regularnie. Jednak metoda nasienna nie jest wywoływana i dlatego wartości odnośników nie są dodawane.Metoda Entity Framework Seed nie jest nazywana
Kod wygląda następująco:
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; }
}
I wzywamy:
Add-Migration Seed
Ale migracji pojawia się pusta.
Czy ktoś ma pomysł, dlaczego Seed jest wywoływany cmot i dlaczego dodatkowe wartości w tabeli odnośnika nie są wykrywane?
Dzięki N
Dziękuję, że pracował :). Czy istnieje jednak sposób na uzyskanie skryptu sql dla wysiewu? –
Zobacz odpowiedź tutaj: http://stackoverflow.com/a/18190509/150342 – Colin
aktualizacja migracji zwraca worek błędów, ponieważ w mojej metodzie seed użyłem plików lub innej implementacji logicznej –