ASP.NET vNext 및 EF7의 여러 dbContexts

asp.net asp.net-mvc c# entity-framework entity-framework-core

문제

MVC 6 및 EF7을 사용하여 ASP.NET vNext로 웹 시스템을 구축하려고합니다. 이 자습서를 보겠습니다. http://stephenwalther.com/archive/2015/01/17/asp-net-5-and-angularjs-part-4-using-entity-framework-7

이 페이지에서 dbContext를 프로젝트에 추가하는 방법을 볼 수 있으며 다음과 같이 시작 파일에 등록됩니다.

// Register Entity Framework
services.AddEntityFramework(Configuration)
        .AddSqlServer()
        .AddDbContext<MoviesAppContext>();

컨텍스트 클래스는 다음과 같습니다.

// Register Entity Framework
services.AddEntityFramework(Configuration)
        .AddSqlServer()
        .AddDbContext<MoviesAppContext>();

모두 잘 작동하지만 이제는 추가 DbContext를 추가해야합니다. 이 추가 컨텍스트를 등록하는 방법을 모르지만 EF에서 사용하고 프로젝트에서 사용할 수 있습니다.

다음과 같이 새로운 컨텍스트를 만들었다 고 가정 해 보겠습니다.

// Register Entity Framework
services.AddEntityFramework(Configuration)
        .AddSqlServer()
        .AddDbContext<MoviesAppContext>();

그러면 프로젝트에 사용할 수 있도록 등록하려면 어떻게해야합니까?

인기 답변

중요 참고 사항 : 이 게시물 이후 Entity Framework 7 서비스 구성 구문이 변경되었습니다 (지난 몇 베타 라운드 시점에서 정확함). 그래도 새로운 구문에도 똑같은 아이디어가 적용됩니다.

내가 한 일은 다음과 같습니다.

services.AddEntityFramework().AddSqlServer()
                .AddDbContext<DataContextA>(options => options.UseSqlServer(Configuration.Get("StorageSettings:SQLConnectionString")))
                .AddDbContext<DataContextB>(options => options.UseSqlServer(Configuration.Get("StorageSettings:SQLConnectionString")));

여기서 StorageSettings:SQLConnectionString 은 SQL Express 데이터베이스의 연결 문자열입니다. 현재, 나는 동일한 데이터베이스를 공유하는 DataContextA와 DataContextB를 둘 다 가지고 있지만 그것들을 분리하여 보관할 수 있습니다. Configuration 메서드를 계속 사용하고 싶다면 (나는 잘 모름), 다음과 같이 할 수 있습니다 :

services.AddEntityFramework().AddSqlServer()
                .AddDbContext<DataContextA>(options => options.UseSqlServer(Configuration.Get("StorageSettings:SQLConnectionString")))
                .AddDbContext<DataContextB>(options => options.UseSqlServer(Configuration.Get("StorageSettings:SQLConnectionString")));

services.AddEntityFramework().AddSqlServer()
                .AddDbContext<DataContextA>(options => options.UseSqlServer(Configuration.Get("StorageSettings:SQLConnectionString")))
                .AddDbContext<DataContextB>(options => options.UseSqlServer(Configuration.Get("StorageSettings:SQLConnectionString")));

DataContextADataContextB 모두 컨트롤러에 삽입 할 수 있습니다.

services.AddEntityFramework().AddSqlServer()
                .AddDbContext<DataContextA>(options => options.UseSqlServer(Configuration.Get("StorageSettings:SQLConnectionString")))
                .AddDbContext<DataContextB>(options => options.UseSqlServer(Configuration.Get("StorageSettings:SQLConnectionString")));



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.