Mam aplikację internetową MVC4 które używają Entity Framework 5.0 kod najpierw.Jak zainicjować bazy danych z Entity Framework i członkostwa w tabelach
W Global.asax.cs Mam bootstrapper, który inicjuje Entity.Database, wymusza inicjalizację bazy danych i zainicjalizowanie bazy danych dla Członkostwa. Kod jest to jedno:
System.Data.Entity.Database.SetInitializer(new DatabaseContextInitializer());
Database.Initialize(true);
WebSecurity.InitializeDatabaseConnection(DEFAULTCONNECTION, "UserProfile", "UserId", "UserName", autoCreateTables: true);
DatabaseContextInitializer jest bardzo prosty w tej chwili:
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"})
}
}
Problem polega na tym, że nie można utworzyć użytkownika do członkostwa z:
WebSecurity.InitializeDatabaseConnection(DEFAULTCONNECTION, "UserProfile", "UserId", "UserName", autoCreateTables: true);
Bo Mam problem z tym, że baza danych nie została utworzona. Jak zainicjować niektóre domyślne użytkownika dla bazy danych z Entity Framework 5.0 i Asp.Net MVC 4?
Cześć, mogę zrobić to rozwiązanie w połowie drogi. W rzeczywistości dwukrotnie uruchamiam aktualizację bazy danych, ponieważ po raz pierwszy tworzona jest baza danych, ale nie tabele. Mam błąd "Nie mogę otworzyć bazy danych" WorkoutPlannerDb "żądany przez login. Logowanie nie powiodło się." Chyba dlatego, że InitializeDatabaseConnection ponownie otworzyć nowe połączenie zamiast używać pierwszego? –
AutomaticMigrationsEnabled = true; jest bardzo przerażający w użyciu. Automatycznie migruje bazę danych za każdym razem, gdy zmieniasz pierwszy kod DbContext i nigdy nie należy go używać w środowisku produkcyjnym. Bardzo trudno jest wyleczyć się z łamania zmian w DB, ponieważ nie masz żadnych kroków migracyjnych, aby powrócić z powrotem. Zamiast tego użyj "add-migration", aby jawnie dodać kroki migracji dla każdej zmiany modelu kodu pierwszego DB. – angularsen
@Darin: Przepraszam, że mogę podać starsze pytanie, ale czy nadal będzie to miało zastosowanie, jeśli oddzielisz kontekst EF od swojego projektu internetowego? Nie mogę sobie wyobrazić, że odwołujesz się do WebMatrix. * I System.Web.Security, jako że stworzyły zależności, które nie powinny istnieć na poziomie danych ... (Może powinienem zadać pytanie na ten temat?) –