我的聚合根的代码片段:
public class Folder { #region PropertIEs public GuID ID { get;set; } public name { get;set; } public virtual ICollection<file> files { get;set; } #endregion #region Methods public file Addfile(string type,string Title,bool share = false) { /// } #endregion}
文件类:
public class file{ #region PropertIEs public virtual Folder Folder { get; set; } public string Title { get; set; } public string Type { get; set; } public bool Shared { get; set; } #endregion #region Constructor public file(Folder folder,string type,bool share = false) { /// } #endregion}
谢谢
解决方法 聚合根负责域不变量(参见 http://dddcommunity.org/library/vernon_2011/).所以答案是肯定的,聚合根应该是唯一可以访问它聚合的对象的对象.这意味着没有其他对象应该获取对file的引用,并且该file不应该公开任何更改其自身状态的方法.
所有更改子对象状态的方法都应该由聚合根本身公开,因为它必须确保聚合不变量.
至于持久删除,我通常将域事件建模为.NET事件:在返回实体之前,这些事件由存储库订阅.因此,在事件处理程序中发生持久性逻辑(有关详细信息,请参阅http://epic.tesio.it/doc/manual/observable_entities.html)
总结以上是内存溢出为你收集整理的domain-driven-design – 聚合根,它们应该负责删除子对象吗?全部内容,希望文章能够帮你解决domain-driven-design – 聚合根,它们应该负责删除子对象吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)