나는 도메인 개체를 식별하는 데 어려움을 겪고 있습니다.개체 대 집계 대 집계
문제 :
- 회사가 하나 또는 여러 개의 사이트를 가지고
- 사이트는 따라서 주와 여러 연락처
- 을 가지고, 회사가 하나 이상의 연락처가 있어요. 이러한 연락처는 사이트 도구에 할당됩니다.
- 연락처는 회사 사이트하지에 추가해야합니다
내 이해 :
public class Company : IEntity
{
public int CompanyId {get;}
public string CompanyName {get;}
//.....
}
public class Site : IEntity
{
public int SiteId {get;}
public string SiteName {get;}
//.....
}
public class Contact : IEntity
{
public int ContactId {get;}
public string SurName {get;}
public bool MainSiteContact {get;}//Confused!! May be this is not the right place
//.....
}
public class SiteContact : IAggregate
{
public Site ASite { get; }
public List<Contact> Contacts { get; }
public Contact MainContact {get;}//Confused!!
//.....
public Contact AddSiteContact(...)
{
}
}
public class CompanySites : IAggregateRoot
{
public Company ACompany { get; }
public List<Site> Sites { get; }
public List<SiteContact> Contacts { get; }
//.....
}
내가 올바른 방향으로 건가요? 만약 내가 잘못
업데이트 는 @Aydin ADN의 대답은 아래의 코멘트 섹션에서 제대로 질문을 정교 @Beachwalker ... 제발 올바른.
@Aydin ADN 나는 그의 질문에 하나 개 이상의 측면을 가지고 있다고 생각 : 이러한 개체는 도메인 기반 디자인 (DDD) aproach의 맥락에서 제대로 맞게 자신의 DDD 프리젠 테이션, 예를 들어, 무엇을 얼마나 1 AggregateRoot, 엔티티, ValueObject 등 2. 도메인 의 해석이 올 바릅니다. (도메인 모델)
설명대로 입력하면됩니다. 다 대다 관계 인 링크 테이블 'CompanySites'를 만들었지 만, 당신이 그것을 설명하는 방식으로, '사이트'는 단지 'CompanyId'를 필요로하고 '회사'는'사이트'세트를 필요로합니다. – Silvermind
@ Silvermind 그래서 CompanySites 또는 집계 루트가 필요 없다고 생각합니까? 사이트 ID에 회사 ID를 추가하면됩니다. – MJK
예, @AydinAdn에는 설명을 정확하게 반영한 예가 있습니다. – Silvermind