2012-05-23 2 views
2

수동 마이그레이션 (AutomaticMigrationsEnabled = false;)과 함께 EF Code First를 사용하고 있습니다. 문제는 두 프로젝트간에 하나의 데이터베이스를 공유해야한다는 것입니다.EF 마이그레이션 - 하나의 데이터베이스, 두 개의 프로젝트

Project-A 
---DbContext-A 
---------Model1 
---------Model2 
---------Model3 

Project-B 
---DbContext-A 
---------Model2 
---------Model3 
---------Model4 

일부 마이그레이션 파일은 동일하지만 일부는 다릅니다. 예를 들어 Project-B는 Model4가 필요하지만 Project-A는 필요하지 않습니다.

현재 하나의 마이그레이션으로 데이터베이스를 업데이트하면 다른 프로젝트에서는 DbContext가 작동하지 않습니다.

이 시나리오를 처리하는 가장 좋은 방법은 무엇입니까?

답변

4

마이 그 레이션의 의도에 반하는 것입니다. 나는 DbContext, 엔티티 및 두 프로젝트간에 공유되는 별도의 어셈블리로 마이그레이션을 구분해야한다고 생각합니다.

이것이 옵션이 아닌 경우 모델의 호환성 검사를 비활성화해야합니다. 호환성 확인은 Database.CompatibleWithModel을 호출하는 IDBInitializer.InitializeDatabase 구현의 일부로 수행되므로 아무 것도하지 않는 사용자 지정 DB Initializer를 작성하면 해당 단계를 지나갈 수 있습니다. 이는 또한 데이터베이스가 모델과 호환되는지 확인해야 할 책임을 인수한다는 의미입니다. EF는 더 이상 당신을 도울 수 없습니다.

관련 문제