我使用实体框架 4,并且我与“级联删除”设置有父子关系。所以我希望当我从父级中删除一个子级时,当我调用 SaveChanges() 时,该子级会被删除。
cuRepository.Attach(_controlUnit);
foreach (var recipe in recipes) {
_controlUnit.Recipes.Remove(recipe);
//repository.DeleteObject(recipe);
}
相反,我得到一个错误:
System.InvalidOperationException 发生消息=操作失败:由于一个或多个外键属性不可为空,无法更改关系。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。
当我明确删除孩子(见注释行)时,一切都很好。我错过了什么?