2011-08-16 2 views
1

MVC3을 처음 접했을 때 새로운 것을 배우고 매우 흥분했습니다. 저는 이것을 구축하려고합니다 : http://mvcmusicstore.codeplex.com/ 처음부터. 내 모델 폴더에 SampleData.cs를 다운로드하고 내 Global.asax.cs에 이러한 변경 후 :MVC MusicStore App Question

protected void Application_Start() 
    { 
     System.Data.Entity.Database.SetInitializer(new MvcMusicStore.Models.SampleData()); 
     AreaRegistration.RegisterAllAreas(); 

     RegisterGlobalFilters(GlobalFilters.Filters); 
     RegisterRoutes(RouteTable.Routes); 
    } 

I 출력의 아주 이상한 종류를 얻고있다. SampleData.cs의 총 데이터를 주석 처리했지만 장르는 여전히 내 locahost/Store/Index에 표시됩니다. 그리고 여기에 더 흥미로운 부분이 있는데, 내 데스크톱 PC에서는 나타나지만 USB 드라이브에 솔루션을 복사하고 노트북에서 실행하면 0 장르를 보여줍니다.

그나마 여기서 무슨 일을 알고 :(

답변

3

SampleData 클래스는 DropCreateDatabaseIfModelChanges에서 상속됩니다. 모델이 변경되지 않으면, 데이터베이스가 그대로 남아 있습니다. 그래서

, 당신은 실행 않았다 그렇다면? Seed의 데이터 생성 코드를 주석 전에 바탕 화면에 응용 프로그램, 즉 데이터 (Seed의 원래 버전이 초기 DB 생성시 사용) 거기에 도착하는 방법은 다음과 같습니다.

당신은 수동으로 데이터베이스를 제거 할 수 또는 모델에 임시 속성을 추가 할 수 있습니다. 두 경우 모두 이니셜 라이저는 새로운 (데이터 없음) 버전 SampleData.Seed을 사용하여 다음 실행시 자동으로 데이터베이스를 다시 작성합니다.

편집DropCreateDatabaseIfModelChangesDropCreateDatabaseAlways으로 변경하는 또 다른 옵션이 있습니다. 그러나 앱을 시작할 때마다이 작업이 실제로 이루어 지므로 데이터를 유지하려는 경우에는 그대로 두지 마십시오.

+0

니스, 그것은 매력처럼 작동했습니다. 감사!!! –