1

좋아요. 그래서 내 뿌리를 정의했습니다. 루트 내부 엔티티는 동일한 루트 안의 다른 엔티티에 대한 참조 만 허용되지만 외부 엔티티는 참조 할 수 없습니다. 여기에는 신원 또는 관련 엔티티 만있을 수 있습니다. 이것은 모두 위대하다.DDD, EF 및 참조 무결성

하지만, 내가 사용 EF5 및 탐색 속성은 방법으로 얻고있다. 엔티티가 집계 내에있는 네비게이션 속성 만 정의하고 싶습니다. 그러나 관련 엔터티가 다른 집계에있는 경우 참조 무결성을 적용하려면 어떻게해야합니까? 마이그레이션을 사용하여 수동으로 FK를 추가하는 유일한 방법입니까?

그리고 다시,하지만 ... 내가 여기 저기에서 집계 데이터를 가져 오는에 대한 ReadOnlyRepositories을 할 수 있도록 원하기 때문에이 문제의 비트를 일으킬 것입니다. 내가 느끼는 도약이 너무 많아서 CQRS에 들어가기를 원하지 않는다. 추가 탐색 속성이 정의 된 엔티티의 새 집합 (또는 파생 집합)으로 두 번째 경계 된 컨텍스트가 필요하지 않습니까? 그래서 둘 이상의 루트에서 데이터를 가져 오는 쿼리를 작성할 수 있습니까? 참조 무결성을 필요로

+0

CQRS 큰 도약을 의미? 소리내어 울부 짖는 소리는 도메인 모델 외에도 읽기 전용 모델이 있다는 뜻입니다. – MikeSW

+1

데이터베이스가 참조 무결성을 담당하므로 단순히 EF 모델의 관계를 무시할 수 없습니까? 따라서 데이터 모델을 탐색 할 방법이 없습니다. –

답변

1

일반적으로 더 깊은 문제를 나타냅니다. 왜 두 테이블 모두에 엔티티 식별자가 있어야합니까? 그렇게 일관되게 유지되는 것은 무엇입니까? 그리고 왜 그것이 명시 적으로 모델링되지 않았습니까? 이 질문들은 그 대답만큼 중요하지 않습니다. 또한 동일한 db 스키마 (및 적절한 인덱스)를 통해 다른 기술을 사용함으로써 많은 문제가 사라질 수 있다는 것을 알고 있습니다. 누가 그 시점에서 CQRS를하고 있을지 알고 있습니다.