【发布时间】:2012-08-12 17:38:48
【问题描述】:
删除实体时,我收到以下错误消息:
操作失败:无法更改关系,因为 一个或多个外键属性不可为空。当一个 对关系进行更改,相关的外键属性是 设置为空值。如果外键不支持空值, 必须定义一个新的关系,外键属性必须是 分配了另一个非空值,或者不相关的对象必须是 已删除。
很公平。但是,我有很多关系,我不知道是哪一个导致了错误。
有没有办法获取导致问题的关系名称?
【问题讨论】:
标签: entity-framework
删除实体时,我收到以下错误消息:
操作失败:无法更改关系,因为 一个或多个外键属性不可为空。当一个 对关系进行更改,相关的外键属性是 设置为空值。如果外键不支持空值, 必须定义一个新的关系,外键属性必须是 分配了另一个非空值,或者不相关的对象必须是 已删除。
很公平。但是,我有很多关系,我不知道是哪一个导致了错误。
有没有办法获取导致问题的关系名称?
【问题讨论】:
标签: entity-framework
有没有办法获取导致问题的关系名称?
不幸的是,如果没有对ObjectStateManager 进行相当复杂的探索,就没有。这是一个非常烦人的问题,因为没有任何附加信息的异常太笼统了。我认为这是一个很好的改进请求,并且有了EF as and open source,应该真的可以提高异常的质量。
您必须检查您的修改代码并检查您要删除的实体。会有一些相关的依赖实体没有被删除,挂起父实体的删除。为 EF 推荐的其他方法是使用级联删除。
【讨论】: