Ho un'applicazione Web MVC4 che utilizza il codice Entity Framework 5.0 First.Come inizializzare il database con le tabelle Entity Framework e Membership
In Global.asax.cs Ho un bootstrap che inizializza Entity.Database, impone l'inizializzazione del database e inizializza il database per l'appartenenza. Il codice è questo:
System.Data.Entity.Database.SetInitializer(new DatabaseContextInitializer());
Database.Initialize(true);
WebSecurity.InitializeDatabaseConnection(DEFAULTCONNECTION, "UserProfile", "UserId", "UserName", autoCreateTables: true);
Il DatabaseContextInitializer è molto semplice, per il momento:
public class DatabaseContextInitializer : DropCreateDatabaseIfModelChanges<DatabaseContext>
{
protected override void Seed(DatabaseContext dbContext)
{
base.Seed(dbContext);
db.Set<Workout>().Add(new Workout {Id = 1, Name = "My First workout user1"})
}
}
Il problema è che non riesco a creare per l'utente per l'adesione con:
WebSecurity.InitializeDatabaseConnection(DEFAULTCONNECTION, "UserProfile", "UserId", "UserName", autoCreateTables: true);
Perché Ho un problema con il fatto che il database non è stato creato. Come si inizializza un utente predefinito per il proprio database con Entity Framework 5.0 e Asp.Net MVC 4?
Ciao, posso fare questa soluzione a metà strada. Devo infatti eseguire due volte update-database perché la prima volta viene creato il database ma non le tabelle. Ho l'errore "Impossibile aprire il database" WorkoutPlannerDb "richiesto dal login. L'accesso non è riuscito." Immagino sia perché InitializeDatabaseConnection riapre una nuova connessione invece di usare la prima? –
AutomaticMigrationsEnabled = true; è molto spaventoso da usare. Migra automaticamente il database ogni volta che si modifica il codice DbContext e non deve mai essere utilizzato nell'ambiente di produzione. È estremamente difficile recuperare da modifiche inaspettate in DB, dal momento che non ci sono passaggi di migrazione da cui risalire. Utilizzare invece "aggiungi-migrazione" per aggiungere esplicitamente passaggi di migrazione per ogni modifica al modello di DB code-first. – angularsen
@Darin: Mi spiace richiamare una domanda precedente, ma ciò vale anche se si separa il contesto EF dal proprio progetto web? Non riesco a immaginare che tu possa fare riferimento a WebMatrix. * E System.Web.Security poiché crea dipendenze che non dovrebbero esistere a livello di dati ... (Forse dovrei fare una domanda per questo?) –