모델 첫 번째 방법을 연습하고 도메인 모델을 구성하고 있습니다. 내 요구 사항은 매우 간단합니다. UserSession은 여러 ShoppingCartItem을 가질 수 있습니다.Linq2Sql 엔터티 위에 도메인 모델을 적용하십시오.
부분 클래스를 사용하여 생성 된 Linq2Sql에 도메인 모델 인터페이스를 적용 할 것이라고 말하기 시작해야합니다. 요구 사항은 세 개의 데이터베이스 테이블 (UserSession, Product, ShoppingCartItem, ProductId 및 UserSessionId는 ShoppingCartItem 테이블의 외래 키임)으로 변환됩니다. Linq2Sql 나를 위해 이러한 엔티티를 생성합니다. 이 시점에서 데이터베이스를 다루지 않아야한다는 것을 알고 있지만 언급하는 것이 중요하다고 생각합니다.
UserSession 없이는 ShoppingCartItem이 존재할 수 없으므로 집계 루트는 UserSession이지만 나머지는 분명하지 않습니다. 제품은 어떻습니까? 그것은 실재적으로 엔티티이지만 ShoppingCartItem과 연관되어 있어야합니까? 여기
(그들은 모든 잘못 구현 될 수 있음) 몇 가지 제안은 다음과 같습니다public interface IUserSession {
public Guid Id { get; set; }
public IList<IShoppingCartItem> ShoppingCartItems{ get; set; }
}
public interface IShoppingCartItem {
public Guid UserSessionId { get; set; }
public int ProductId { get; set; }
}
가 또 다른 하나가 될 것이다 :
public interface IUserSession {
public Guid Id { get; set; }
public IList<IShoppingCartItem> ShoppingCartItems{ get; set; }
}
public interface IShoppingCartItem {
public Guid UserSessionId { get; set; }
public IProduct Product { get; set; }
}
세 번째 하나는 다음과 같습니다
public interface IUserSession {
public Guid Id { get; set; }
public IList<IShoppingCartItemColletion> ShoppingCartItems{ get; set; }
}
public interface IShoppingCartItemColletion {
public IUserSession UserSession { get; set; }
public IProduct Product { get; set; }
}
public interface IProduct {
public int ProductId { get; set; }
}
내가 내 마음이 데이터베이스 모델과 테이블과 너무 밀접하게 결합되어있어이를 파악하기 어렵다는 느낌을 갖습니다. 누구나 감히 신경 쓸 수 있니?
Igor, ShoppingCartItem 엔터티에 Quantity를 추가하려면 어떻게해야합니까? 나는 public int에 추가 할 것인가? Quantity {get; 그것을 설정;}? – Thomas
예. 그것은 도메인 속성으로 나를 공격하므로 모델에 속합니다. –