2013-10-09 5 views
0

CQRS를 사용하여 프로젝트를 구현해야하지만 엔티티가 해당 명령 및 쿼리 클래스를 가져 오는 지에 대해 의심 스럽습니다.CQRS 및 도메인 모델

클래스 A, B 및 C가 A가 내 집계 루트이고 다른 클래스가 내 집계에 자식 엔터티 인 경우 어떤 클래스에 명령 및 쿼리 클래스가 있어야합니까?

나는 QueryA, QueryB 및 QueryC가 있어야합니까? 예를 들어, 지연로드를 사용하여 하위 데이터를 가져 오는 QueryA 만 있어야합니까?

리포지토리의 경우 도메인 모델을 이해함에 따라 RepositoryA (집계 루트 용) 만 고려하고 있습니다.

답변

7

쿼리는 집계가 아니며보기별로 제공됩니다. 예를 들어 당신은 고객 계정이 있고 계정의 목록 기밀 정보와

  • 계정 정보 (예 : 신용 카드 정보)
  • 계정 정보 기밀 정보없이

    1. 을 표시 할 말

    이것은 모든 조회에 대해 하나씩 3 개의 조회가됩니다. 그리고 보통은 게으른 로딩과 같은 고통스러운 일이 없습니다. 특정보기에 대한 정보가 필요하거나 그렇지 않습니다.

    명령은 집합 단위가 아닙니다. 모든 행동에 대해 명령을 내릴 수 있습니다. OpenAccount, CloseAccount, MergeAccounts 등과 마찬가지로