如何做?
var standardChemicalElement = this.DataContext.StandardChemicalElement.First(s => s.StandardChemicalElementId == id);
standardChemicalElement.ChemicalElementItems.Clear();
this.DataContext.SaveChanges();
以上代码结果
"操作失败: 无法更改关系,因为一个或多个外键属性不可以为 null。对关系作出更改后,会将相关的外键属性设置为 null 值。如果外键不支持 null 值,则必须定义新的关系,必须向外键属性分配另一个非 null 值,或必须删除无关的对象。"standardChemicalElement.ChemicalElementItems.Clear(); //仅清除关联未删除数据
改为
foreach(var item in standardChemicalElement.ChemicalElementItems)
{
this.DataContext.StandardChemicalElementItem.Remove(item);
this.DataContext.StandardChemicalElementItem.Attach(item);
this.DataContext.Entry(item).State = EntityState.Deleted;
}
this.DataContext.SaveChanges();