【发布时间】:2012-11-16 15:56:41
【问题描述】:
当我运行我的应用程序并单击特定按钮时出现错误:
"The "X" property on "Y" could not be set to a 'null' value. You must set this property to a non-null value of type 'Int32'."
太好了,所以我去我的Entity项目,去Y表,找到X列,右键单击并进入X的属性,发现Nullable设置为False。
我在 SQL 中验证,在 Y 表中,X 设置为允许空值,并且确实如此。
然后我回到我的实体项目,将 Nullable 设置为 True,保存并构建,然后我收到:
Error 3031: Problem in mapping fragments starting at line 4049:Non-nullable column "X" in table "Y" is mapped to a nullable entity property.
我听说从 .edmx 文件中删除表然后重新添加它是可能的,但我从未这样做过,也没有充分理解这样做的含义。
听说可以在视图中,也可以在存储过程中……
也听说这是个bug。
有没有人遇到过这种情况并找到了“全面”修复或某种路线图来查找此错误的位置?
谢谢!
【问题讨论】:
-
您实际尝试过什么?我不知道 .edmx 文件是什么,但您可以简单地尝试按照建议删除/重新添加它。如果这不起作用,请更换为您的原件。您正在使用某种 VCS(版本控制系统),对吧?
-
您是否在更改实体后更新了您的对象?您可能在 Y 对象中的 X 属性仍定义为 'int' 而不是 'int?'
标签: sql visual-studio-2010 entity-framework