我似乎已经陷入了对整个DDD\LinqToSql业务的一点困惑.我正在构建一个使用POCOS和linq到sql的系统,我有聚合根的存储库.因此,例如,如果您有Order-> OrderLine类,则您有Order而不是OrderLine的存储库,因为Order是聚合的根.存储库具有删除订单的删除方法,但是如何删除OrderLines?您可能认为Order上有一个名为RemoveOrderLine的方法,该方法从OrderLines集合中删除了该行,但它还需要从底层的l2s表中删除OrderLine.由于OrderLine没有存储库,您应该怎么做?
也许有专门的公共存储库用于查询域对象实际用于删除聚合内容的根和内部通用存储库?
public class OrderRepository : Repository{ public Order GetOrderByWhatever(); } public class Order { public List Lines {get; set;} //Will return a readonly list public RemoveLine(OrderLine line) { Lines.Remove(line); //************* NOW WHAT? *************// //(new Repository (uow)).Delete(line) Perhaps?? // But now we have to pass in the UOW and object is not persistent ignorant. AAGH! } }
我很想知道其他人做了什么因为我不能成为唯一一个与此斗争的人....我希望....谢谢