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