是否可以在没有HasMany的情况下将外键设置为null

本文关键字:设置 null 情况下 HasMany 是否 | 更新日期: 2023-09-27 18:22:19

我有实体Territory

    class Territory
    {
      public int Id {get;set;}
      public string Title {get;set;}
    }

以及一些引用它的实体,如

    class MyObject
    {
      public Territory Territory {get;set;}
    }

和FluentHibernate 中的映射

    References(x => x.Territory)
            .Column("TerritoryId")
            .Nullable()                
            .Not.LazyLoad()
            .Cascade.None();

当我删除区域时,我有错误:DELETE语句与REFERENCE约束"FK377ABC4DAD038F1B"冲突。冲突发生在数据库"GPM_Test"、表"dbo.MyObject"、列"TerritoryId"中。

如何在删除区域之前使nhibernate将FK设置为NULL?

我需要类似于SQL 的东西

    ON DELETE set NULL

是否可以在没有HasMany的情况下将外键设置为null

我想说,在删除对象本身之前,必须先删除实体之间的链接,当然,这可以在数据库中通过级联删除来完成。另一种方法是通过程序删除要删除的实体和相关表之间的链接。