2012-05-23 8 views

Odpowiedz

21

Użyj tego na starcie aplikacji, aby wyłączyć inicjalizacji bazy danych i migracje:

Database.SetInitializer<YourContextType>(null); 
+0

Dodaję ten kod w dziale Budownictwo, ale nie pomogę – Greg

+0

Konstruktor jest już za późno Greg. Przeczytaj odpowiedź jeszcze raz. Uruchamianie aplikacji znajduje się w pliku global.asax – Stimul8d

+0

Czy istnieje sposób wyłączenia go globalnie, czy też muszę to zrobić dla każdego dbContext? – JMarsch

7

Jeśli chcesz wyłączyć bazy danych inicjalizacji/migracja całkowicie niezależnie od tego, w którym projekt używasz context można dodać statyczny konstruktor do kontekstu, aby wywołać inicjator. Zapewnia to wywołanie SetInitializera przed pierwszą budową/użyciem kontekstu.

public class YourContext : DbContext 
{ 
    static YourContext() 
    { 
     // don't let EF modify the database schema... 
     Database.SetInitializer<YourContext >(null); 
    } 

    public YourContext() : base("name=YourContext") 
    {} 
    ... 
} 

Jeśli jednak chcesz zrobić to tylko w kilku wybranych projektach, lepiej zrobić to wyraźnie, uruchamiając aplikację - np. podczas normalnej konfiguracji IoC, jak sugeruje Ladislav.