Si utilizza Entity Framework 4.4 e si utilizzano le migrazioni. Il database esiste già e dobbiamo aggiornarlo regolarmente. Il metodo seed, tuttavia, non viene chiamato e pertanto i valori di ricerca non vengono aggiunti.Il metodo Seed Framework Entity Framework non viene chiamato
Il codice è come segue:
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; }
}
E ci chiediamo:
Add-Migration Seed
Ma la migrazione viene a mani vuote.
Qualcuno ha un'idea del motivo per cui viene chiamato il cmot e perché i valori aggiuntivi nella tabella di ricerca non vengono rilevati?
Grazie N
Grazie, che ha funzionato :). Tuttavia, c'è un modo per ottenere lo script sql per il seeding? –
Vedere la risposta qui: http://stackoverflow.com/a/18190509/150342 – Colin
aggiornamento-migrazione restituisce un sacco di errori perché nel mio metodo seed ho usato i file o altre implementazioni logiche –