实体框架更好的错误解释

时间:2013-01-08 07:32:21

标签: asp.net-mvc automapper entity-framework-5

我正在使用带有Entity框架和MVC 4(asp.net)的数据库第一种方法,现在做,然后得到以下错误:

  

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

最可能的是,我有一个无意的空引用,这是由于转换步骤的任何部分(从视图,视图模型到数据库对象到自动播放器)。

我想知道的是,是否有某种方法可以获得问题所在的信息,哪个外键导致问题。我试过跟踪数据库,但似乎应用程序知道在尝试保存到数据库之前存在问题。我可以以某种方式调试这个吗?获取更多错误信息?

2 个答案:

答案 0 :(得分:0)

这些类型的错误可能令人沮丧,因为它们很难被追踪。

我将从清除数据库中的所有数据开始(如果需要,请备份)。

然后,在Management Studio中打开数据库,将表拖放到可视化设计器上。然后,您可以直观地了解关系的样子。你可能会感到惊讶!

答案 1 :(得分:0)

如果更改了数据库架构(模型)并且数据库中包含某些数据,则可能会发生这些类型的错误。 两个或多个表使用外键具有关系。

可能的解决方案

删除数据库并再次应用迁移。