2013-12-11 2 views
0

웹 응용 프로그램에서 ASP.NET MVC5, 엔터티 프레임 워크를 사용하고 있습니다. 복잡한 비즈니스 로직이 필요하므로 개별 비즈니스 문제에 따라 코드를 분리해야합니다. 나는 기존 데이터베이스 접근법과 함께 코드 우선을 사용하고있다. 디자인 마법사에서 3 ADO.NET 엔터티 데이터 모델을 만들었습니다. 그 모델과 별도의 dbContext. 내 문제는 내가 처음 만든 모델 중 하나에서 하나의 테이블 공유가있는 세 번째 dbContext를 만들 때 발생합니다. 메타 데이터 예외가 사용자 코드에 의해 처리되지 않았습니다. 나는 메타 데이터와 관련이 있다고 생각하지만이 문제에 접근하는 방법을 모르고있다.각 비즈니스 함수에 대해 여러 dbcontext 사용

하나의 웹 페이지 (하나의 비즈니스 기능)가 두 개의 테이블로만 구성된 경우 왜 메모리의 전체 데이터를 플러스 디커플링하면 기존 코드를 방해하지 않고 유지 관리 성과 유연성을 향상시킬 수 있습니까?

답변

1

경계 컨텍스트 사용하는 열쇠는

  • 사용은에 엔티티

    modelBuilder.Ignore<MyUnNecessaryEntity>();

및/또는

  • 변화 데이터베이스 초기화 무시이고 없음

    Database.SetInitializer(new ContextInitializerNone<MyContext>()); 
    

에 MINI 컨텍스트 나는 단지 한 맥락 일치 테이블 세트를 유지에 대한 책임의 TEH 아이디어를 좋아한다. 다른 컨텍스트는 동일한 POCO 정의를 사용하여 해당 테이블에 액세스 할 수 있습니다. 그들은 pocs의 하위 집합 일 수 있습니다. 컨텍스트가 축소되어 초기화되지 않습니다.

MSDN의 Julie Lerman이 Bounded Contexts에서 읽어야 할 가치있는 기사가 있습니다.

관련 문제