nhibernate存储库模式

时间:2011-03-21 17:32:56

标签: nhibernate

我对nhibernate和存储库模式有一个非常基本的问题:

我有一个存储库(聚合),这是一个父级。如果我想删除一个孩子,我应该有一个删除方法来处理孩子和父母的删除,或者我应该有不同的方法吗?

我应该如何处理删除有孩子的父母。 任何示例代码都将受到赞赏。

2 个答案:

答案 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);