没有HasMany,是否可以将外键设置为null?

时间:2012-02-01 10:49:50

标签: c# orm fluent-nhibernate

我有实体Territory

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

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

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

并在FluentNHibernate中进行映射

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

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

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

我需要类似SQL的东西

    ON DELETE set NULL

1 个答案:

答案 0 :(得分:0)

我会说你必须先删除实体之间的链接才能删除对象本身,这可以通过级联删除在数据库中完成。另一种方法是programmicaly删除要删除的实体和相关表之间的链接。