我有NHibernate和存储库模式一个非常基本的问题:NHibernate的仓库模式
我有一个存储库(聚集),这是父母。如果我想删除一个孩子,我是否应该有一个删除方法来处理孩子和父母的删除,还是应该有不同的方法?
我该如何处理删除有孩子的父母。 任何示例代码将不胜感激。
我有NHibernate和存储库模式一个非常基本的问题:NHibernate的仓库模式
我有一个存储库(聚集),这是父母。如果我想删除一个孩子,我是否应该有一个删除方法来处理孩子和父母的删除,还是应该有不同的方法?
我该如何处理删除有孩子的父母。 任何示例代码将不胜感激。
你使用hbm映射文件或流利NHibernate来设置你的映射?
如果您正在使用的映射文件,其中一个方案是设置级联属性,例如:
...
<bag name="Children" lazy="true" cascade="delete" >
<key column="ParentId" />
<one-to-many class="Child" />
</bag>
...
级联=“删除”将导致母公司删除到它相关联的对象被级联。级联可以指定为cascade =“all | none | save-update | delete”,因此您可以指定哪些操作应该从父级级联到关联的对象。
注意.Cascade.All()
:
HasMany(item => item.ItemFeedbackItems)
.KeyColumn("ItemID")
.Cascade.All()
.LazyLoad()
.Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore);
感谢您的回应,我使用FluentNhibernate的映射。 – user669803 2011-03-21 17:47:41
@ user669803我对Fluent界面不太熟悉,但是,文档会说:“与所有其他流利映射一样,您可以链接调用来自定义引用关系。例如,如果您想指定要使用的级联策略Cascade属性。参考(x => x.Author).Column(“AuthorId”)。Cascade.All();“ – Graham 2011-03-21 18:00:23