当我运行我的应用程序,我点击一个特定的按钮我得到错误:
"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'."
很酷,所以我去我的实体项目,去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.
有没有人遇到这个,找到一个“全面的”修复或一些路线图在哪里寻找这个错误?
谢谢!
解决方法
"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'."
在您的EDMX中,如果您在Y表下方并单击X列,右键单击属性,向下滚动到Nullable并从False更改为True.
如果您收到“映射片段”错误,则必须从EDMX中删除该表并重新添加它,因为在模型浏览器中,它存储表属性,并且是唯一的刷新方式(我知道)将从<数据库> .Store中的模型浏览器中删除该表,然后使用从Database ..命令更新模型进行检索.