【发布时间】:2014-08-21 23:35:59
【问题描述】:
我使用以下代码 sn-p 删除带有子设计记录的父 Job 记录。
foreach (var item in data.Items.Where(i => i.DeletePending == true && i.ItemId > 0))
{
var deljob = connect.job.Include(j => j.Design).Single(j => j.JobID == item.ItemId);
foreach (var delDesign in deljob.Design.ToArray())
{
// next line is needed or it fails
connect.Entry(delDesign).State = EntityState.Deleted;
deljob.xVivDesign.Remove(delDesign);
}
// no need to set the state here
connect.job.Remove(deljob);
}
错误是
无法更改关系,因为一个或多个外键属性不可为空。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。
【问题讨论】: