2012-05-23 2 views

답변

21

사용이 데이터베이스 초기화 및 마이그레이션을 끕니다 :

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

이 코드를 Construction에 추가했지만 도움이되지 않습니다. – Greg

+0

생성자가 너무 늦었습니다. Greg. 답을 다시 읽으십시오. 응용 프로그램 시작은 global.asax에 있습니다 – Stimul8d

+0

전역 적으로 해제하는 방법이 있습니까? 아니면 모든 dbContext에 대해이 작업을 수행해야합니까? – JMarsch

7

완전히 상관없이 당신은 당신이 추가 할 수 컨텍스트를 사용하는 프로젝트의 데이터베이스 초기화/마이그레이션을 끄려면 컨텍스트에 이니셜 라이저를 호출하는 정적 생성자. 이렇게하면 컨텍스트의 처음 생성/사용 전에 SetInitializer가 한 번 호출됩니다. 당신은 단지 몇 가지 선택 프로젝트에서이 작업을 수행하려면

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

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

그러나, 당신은 명시 적으로 응용 프로그램 시작을 통해 그 일을 더 낫다 - 예를 들어, Ladislav가 제안한 것과 같은 일반적인 IoC 설정 중에

관련 문제