Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
nhibernate存储库模式_Nhibernate - Fatal编程技术网

nhibernate存储库模式

nhibernate存储库模式,nhibernate,Nhibernate,我对nhibernate和存储库模式有一个非常基本的问题: 我有一个存储库(聚合),这是一个父存储库。如果我想删除一个子项,我应该使用一个delete方法来处理子项和父项的删除,还是应该使用不同的方法 我应该如何处理删除有子级的父级。 任何示例代码都将不胜感激。您是否使用hbm映射文件或Fluent NHibernate设置映射 如果您使用的是映射文件,一个选项是设置级联属性,例如: ... <bag name="Children" lazy="true" cascade="delete"

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

我有一个存储库(聚合),这是一个父存储库。如果我想删除一个子项,我应该使用一个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);