代码之家  ›  专栏  ›  技术社区  ›  Rob Walker

(Fluent)NHibernate:删除时强制外键为空

  •  1
  • Rob Walker  · 技术社区  · 14 年前

    我有一个标准的父子(1:many)关系,使用Fluent NHibernate配置:

    在父方:

    HasMany(x => x.Items).Inverse().Cascade.All();
    

    在儿童方面:

    Map(x => x.ItemCategory).Nullable().Index("idx_item_category").Not.LazyLoad()
    

    (针对Epicka的评论编辑:)

    通过调用删除记录

    session.Delete(item_category)
    

    这是事务中唯一完成的操作。

    (结束编辑)

    当前,当我删除一个itemcegory记录时,它会将删除操作层叠到所有项上,根据文档,这些项似乎按预期工作。

    我希望Item.itemcegory设置为空 删除项类别记录时。

    我似乎只能完全关闭级联,这会导致数据库损坏(项引用的是丢失的类别)。所以,目前我必须手动操作,这比我希望的更容易出错。

    是否可以配置此行为?
    会话。删除(项目类别)

    1 回复  |  直到 14 年前
        1
  •  1
  •   Diego Mijelshon    14 年前

    如果不可能开箱即用,则可以实现 IPreDeleteEventListener