문제

누구든지 전통적인 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 기능이 어린이를 고려한다고 가정합니다. 또한 주문이 더러워진 것이 아니라 주문이 새/편집되었는지 확인할 수있는 수단이 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top