2
我有實體領地如果沒有HasMany,是否可以將外鍵設置爲null?
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語句與參考約束「FK377ABC4DAD038F1B」衝突。數據庫「GPM_Test」,表「dbo.MyObject」,列「TerritoryId」發生衝突。
如何在刪除區域之前將nhibernate設置爲NULL?
我需要像SQL
ON DELETE set NULL
因此,在我刪除我的領土實體之前,我需要寫myObject.Territory = null,並且我可以如何管理所有實體引用區域? – syned 2012-02-01 12:02:57
我不知道你的數據庫設計,但據我所知它是一個直接鏈接。因此,首先更新Territory ID設置爲您要刪除的區域的所有對象。 linq語句可能如下所示: 'context.MyObject.Where(obj => obj.TerritoryId == [TerritoyID_to_remove])' – DerDee 2012-02-01 12:32:19