我正在使用带有Entity框架和MVC 4(asp.net)的数据库第一种方法,现在做,然后得到以下错误:
操作失败:无法更改关系,因为 一个或多个外键属性是不可为空的。当一个 改变了关系,相关的外键属性是 设置为空值。如果外键不支持空值, 必须定义新的关系,外键属性必须是 分配了另一个非空值,或者不相关的对象必须是 删除。
最可能的是,我有一个无意的空引用,这是由于转换步骤的任何部分(从视图,视图模型到数据库对象到自动播放器)。
我想知道的是,是否有某种方法可以获得问题所在的信息,哪个外键导致问题。我试过跟踪数据库,但似乎应用程序知道在尝试保存到数据库之前存在问题。我可以以某种方式调试这个吗?获取更多错误信息?
答案 0 :(得分:0)
这些类型的错误可能令人沮丧,因为它们很难被追踪。
我将从清除数据库中的所有数据开始(如果需要,请备份)。
然后,在Management Studio中打开数据库,将表拖放到可视化设计器上。然后,您可以直观地了解关系的样子。你可能会感到惊讶!
答案 1 :(得分:0)
如果更改了数据库架构(模型)并且数据库中包含某些数据,则可能会发生这些类型的错误。 两个或多个表使用外键具有关系。
可能的解决方案
删除数据库并再次应用迁移。