2013-06-20 2 views
0

MVC3 프로젝트를 업로드했습니다. 간단한 블로그입니다. 처음에는 잘 작동했지만 몇 시간이 지나면 작동합니다! 오류를 다음 것은 (I 오류를보고 Off로 사용자 지정 오류를했습니다)데이터베이스가 생성되는 동안 모델이 변경됨

The model backing the 'SiteContext' context has changed since the database was created. Either manually delete/update the database, or call Database.SetInitializer with an IDatabaseInitializer instance. For example, the DropCreateDatabaseIfModelChanges strategy will automatically delete and recreate the database, and optionally seed it with new data. 

내가 수동으로 데이터베이스를 삭제하고 다시 만든 다음 내가 만든 백업을 복원해야이 문제를 해결하기 위해 나타납니다. 그러나 2 시간 이후 다시 나는 실수를 얻는다!

나는 정말로 어떤 생각이 없으며, 그 원인은 무엇입니까 ??

답변

0

모델을 만들고 EF에서 데이터베이스를 만들도록 요청하면 EF는 해시 모델을 만들고 데이터베이스에 해시 값을 저장합니다. 컨텍스트가 생성 될 때마다 EF는 해시를 다시 계산하고 데이터베이스에 저장된 내용과 비교합니다. 모델이 어떤 식 으로든 변경되면 결과 해시가 달라지며 EF가 방금 본 예외를 throw합니다. 이는 데이터베이스와 모델을 동기화하기 위해 수행됩니다.

런타임 중에 모델이 변경되었을 수있는 방법이 있습니까? 당신이 그 차이를 알아 내기 위해 할 수있는

한 가지입니다

1.Re 만들 당신이 지금하고있는 같은 모델에서 데이터베이스를하고 (script1.sql를) 스크립트 얻을.

2.Wait 오류가 발생하고, DB 및 삭제까지 다시 재 작성 및 스크립트는이 (script2.sql)

3.Try는 두 가지를 비교하고 차이를 발견 할 수 있는지 여부를 확인합니다 스키마.

이렇게하면 모델에서 무엇이 변경되었는지 알 수 있습니다.

Goodluck

관련 문제