전통적인 ado.net을 사용하여 집계 루트 위에 crud
-
19-09-2019 - |
문제
누구든지 전통적인 ado.net을 사용하여 집계 루트에 대한 간단한 CRUD 문을 보여줄 수 있습니까? 미리 감사드립니다!
해결책
(이것은 연결 관리 등과 같은 보일러 코드도 많이 저장소의 기본 클래스로 이동해야합니다. 순서가 집계 루트 인 경우, Orderlinerepo를 조립품에 비공개로 만들 수 있습니다.
public class OrderRepository : Repository
{
public void Save(Order order)
{
if(order.IsDirty)
{
//sets up connection if required, command and sql
ICommand command = BuildCommandForSave(order);
command.Execute();
OrderLineRepository orderLineRepo = GetOrderLineRepo();
foreach(OrderLine line in order.OrderLines)
{
orderLineRepo.Save(line);
}
}
}
}
그러나 나는 이것이 정말로 단순한 순진한 구현이라는 강조를 강조하고, 잘 테스트 된 잘 테스트 된 지속성 층에 대한 요구 사항이 사소한 일이 아니기 때문에 DDD를 수행하는 경우 내 지속성을 위해 nhibernate와 같은 ORM을 개인적으로 활용한다고 강조합니다.
또한 이것은 isdirty 기능이 어린이를 고려한다고 가정합니다. 또한 주문이 더러워진 것이 아니라 주문이 새/편집되었는지 확인할 수있는 수단이 필요합니다.
제휴하지 않습니다 StackOverflow