nhibernate存储库模式
我对nhibernate和存储库模式有一个非常基本的问题: 我有一个存储库(聚合),这是一个父存储库。如果我想删除一个子项,我应该使用一个delete方法来处理子项和父项的删除,还是应该使用不同的方法 我应该如何处理删除有子级的父级。nhibernate存储库模式,nhibernate,Nhibernate,我对nhibernate和存储库模式有一个非常基本的问题: 我有一个存储库(聚合),这是一个父存储库。如果我想删除一个子项,我应该使用一个delete方法来处理子项和父项的删除,还是应该使用不同的方法 我应该如何处理删除有子级的父级。 任何示例代码都将不胜感激。您是否使用hbm映射文件或Fluent NHibernate设置映射 如果您使用的是映射文件,一个选项是设置级联属性,例如: ... <bag name="Children" lazy="true" cascade="delete"
任何示例代码都将不胜感激。您是否使用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”,这样您就可以指定哪些操作应该从父对象级联到关联对象。注意.Cascade.all()
:
感谢您的回复,我正在使用FluentNhibernate进行映射。@user669803我对Fluent界面不太熟悉,但是,文档中说“与所有其他Fluent映射一样,您可以通过链式调用来自定义引用关系。例如,如果您想指定级联策略,则使用cascade属性。引用(x=>x.Author).Column(“authord”).Cascade.All()
HasMany(item => item.ItemFeedbackItems)
.KeyColumn("ItemID")
.Cascade.All()
.LazyLoad()
.Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore);