我对nhibernate和存储库模式有一个非常基本的问题:
我有一个存储库(聚合),这是一个父级。如果我想删除一个孩子,我应该有一个删除方法来处理孩子和父母的删除,或者我应该有不同的方法吗?
我应该如何处理删除有孩子的父母。 任何示例代码都将受到赞赏。
答案 0 :(得分:1)
您是否正在使用hbm映射文件或Fluent NHibernate来设置映射?
如果您使用的是映射文件,则可以选择设置级联属性,例如:
...
<bag name="Children" lazy="true" cascade="delete" >
<key column="ParentId" />
<one-to-many class="Child" />
</bag>
...
cascade =“delete”将导致父级的删除被级联到其关联对象。 Cascade可以指定为cascade =“all | none | save-update | delete”,因此您可以指定哪些操作应该从父级联接到关联对象。
答案 1 :(得分:0)
注意.Cascade.All()
:
HasMany(item => item.ItemFeedbackItems)
.KeyColumn("ItemID")
.Cascade.All()
.LazyLoad()
.Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore);