当前位置:  开发笔记 > 数据库 > 正文

域驱动设计(Linq to SQL) - 如何删除聚合的部分?

如何解决《域驱动设计(LinqtoSQL)-如何删除聚合的部分?》经验,为你挑选了0个好方法。

我似乎已经陷入了对整个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!
    }
}

我很想知道其他人做了什么因为我不能成为唯一一个与此斗争的人....我希望....谢谢

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有