Nhibernate更新-更新实体上的子项的解决方案?

Nhibernate更新-更新实体上的子项的解决方案?,nhibernate,Nhibernate,正在寻找有关如何更新实体集合的建议。在web应用程序中,我们有一个多选列表框,允许用户从可用实体列表中分配和删除子实体。用户将选择与父级关联的相关子级。i、 e.可能属于多个类别的产品。一旦用户满意,他们就会提交,我们就会更新实体 在考虑性能的情况下,向集合更新(删除已删除的子项,添加新子项)的首选方式是什么。我不想运行几个sql语句来获取每个子级并将其添加到父级 干杯 附件: public class ParentMap : EntityMapping<Parent> {

正在寻找有关如何更新实体集合的建议。在web应用程序中,我们有一个多选列表框,允许用户从可用实体列表中分配和删除子实体。用户将选择与父级关联的相关子级。i、 e.可能属于多个类别的产品。一旦用户满意,他们就会提交,我们就会更新实体

在考虑性能的情况下,向集合更新(删除已删除的子项,添加新子项)的首选方式是什么。我不想运行几个sql语句来获取每个子级并将其添加到父级

干杯

附件:

 public class ParentMap : EntityMapping<Parent>
    {
        public ParentMap()
        {
            Map(x => x.Name);
            HasMany(x => x.Children)
                .Cascade.AllDeleteOrphan()
                .Access.LowerCaseField(Prefix.Underscore);
        }
    }

    public class ChildMap : EntityMapping<Child>
    {
        public ChildMap()
        {
            References(x => x.Parent);
        }
    }

 public abstract class EntityMapping<TEntity> : ClassMap<TEntity> where TEntity : EntityBase
    {
        protected EntityMapping()
        {
            Id(x => x.Id, "Id")
                .UnsavedValue("00000000-0000-0000-0000-000000000000")
                .GeneratedBy.GuidComb();
            OptimisticLock.Version();
            Version(entity => entity.Version);
        }
    }
公共类ParentMap:EntityMapping
{
公共ParentMap()
{
Map(x=>x.Name);
有很多(x=>x个孩子)
.Cascade.alldelete孤儿()
.Access.LowerCaseField(前缀.下划线);
}
}
公共类子映射:EntityMapping
{
公共儿童地图()
{
参考文献(x=>x.Parent);
}
}
公共抽象类EntityMapping:ClassMap,其中tenty:EntityBase
{
受保护的EntityMapping()
{
Id(x=>x.Id,“Id”)
.UnsavedValue(“00000000-0000-0000-0000-000000000000”)
.GeneratedBy.GuidComb();
OptimisticLock.Version();
版本(entity=>entity.Version);
}
}

在父实体和子实体之间建立级联关系,并强制其执行所有操作,如更新、删除等。您必须在HBM映射文件中定义级联行为。更多信息:

我已经选择了cascade all delete Orphant,它不会删除仅添加的所有内容。嘿,丹。原始帖子中的映射