2012-08-12 103 views
1

当删除一个实体,我得到了以下错误消息:哪种关系可以防止删除?

操作失败:关系不能被改变,因为 一个或多个外键的属性是不可为空。当 更改为关系时,相关的外键属性 设置为空值。如果外键不支持空值,则必须定义一个新的关系,外键属性必须为 分配另一个非空值,或者无关对象必须为 删除。

不够公平。但是,我有很多很多的关系,我不知道哪一个会导致错误。

有没有办法找到导致问题的关系的名称?

回答

2

有没有办法找到导致问题的关系的名称?

不幸的是,没有没有相当复杂的探索ObjectStateManager。这是一个很烦人的问题,因为这个异常太泛化了,没有任何额外的信息。我认为这是一个很好的改进要求,而且应该真的可以提高例外的质量。

您将不得不通过您的修改代码并检查您尝试删除的实体。将会有一些相关的依赖实体不被删除并挂起父实体的删除。为EF推荐的其他方法是使用级联删除。