ASP.NET 5 프로젝트에서 EF6을 사용하고 있습니다. 내가 ASP.NET 인증을 인증 메커니즘으로 사용하고있는 곳. 누구나 할 수있는 것처럼 별도의 dll 프로젝트에서 내 도메인 객체를 모델링했으며 데이터 액세스 논리의 경우 별도의 프로젝트가 있습니다. 이 데이터 프로젝트에는 EF 마이그레이션, 도메인 모델, 저장소 및 작업 단위에 대한 DbContext가 포함되어 있습니다.여러 DbContexts로 데이터베이스 자동 업데이트
그리고 저는 ASP.NET 컨트롤러와 접촉하는 서비스 레이어가 있으며이 서비스 레이어는 데이터 레이어와 통신하고 필요한 작업을 수행합니다.
기본 ASP.NET 웹 프로젝트에서 Identity와 관련된 기본 DbContext가 있고 마이그레이션이 있습니다.
두 개의 DbContext가 있으면 자동으로 데이터베이스를 자동으로 업데이트 할 수 없습니다. 모델 변경을위한 마이그레이션을 만든 후에 단 하나의 DbContext 만 있으면 웹 사이트에 처음 액세스 할 때 자동으로 실행됩니다. 이것은 더 이상 발생하지 않습니다. 항상 "update-database"명령을 수동으로 실행해야합니다.
제가 지금 가지고있는 한 가지 해결책은 데이터 프로젝트에 "Microsoft.AspNet.Identity.EntityFramework"에 대한 참조를 추가하고 ID 컨텍스트에 내 도메인 테이블을 포함시키는 것입니다. 그러나 내 데이터 프로젝트에 ASP.NET 참조를 추가하는 것은 다른 옵션이 없으면하고 싶지 않습니다. 데이터 레이어가 웹 레이어와 직접 통신하지 않기 때문입니다.
Scott Allen의 비디오 this이이 문제에 관해 논의하지만 해결 방법은 제안되지 않았습니다.
안녕하세요 Geethanga, 저는 당신과 같은 프로젝트를 가지고 있습니다. 여기에서는 거의 동일한 문제가 있습니다. 패키지 관리 콘솔에서 2 개의 프로젝트로 전환하면 두 개의 데이터베이스를 업데이트 할 수 있습니다. 그러나 푸른 색으로 프로젝트를 게시하면 dll 프로젝트의 마이그레이션 만 실행되고, 웹 프로젝트 (conatins identityContext)의 마이그레이션에는 마이그레이션을 실행할 수있는 옵션이 없습니다. DBMigrator를 사용하여 데이터베이스를 업데이트하는 방법에 대해 더 자세히 알 수 있습니까? 감사합니다 – ChengWhyNot