sql - 无法将 “X”上的 “Y”属性设置为 'null'值。您必须将此属性设置为 'Int32'类型的非空值

标签 sql visual-studio-2010 entity-framework

当我运行我的应用程序并单击特定按钮时,出现错误:

"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设置为允许空值,并且确实如此。

然后,我回到我的Entity项目,将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文件中删除表,然后重新添加它是有可能的,但是从未这样做过,并且对所涉及的含义不甚了解。

我听说它可能在 View 中,也可能在存储过程中...

也听说这是一个错误。

有谁遇到过这种情况,找到了“全面解决方案”,或者找到了在哪里寻找此错误的某种路线图?

谢谢!

最佳答案

 "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中删除该表并重新添加它,因为在模型浏览器中,它存储表属性以及刷新该属性的唯一方法(我知道)是从“模型浏览器”中的<database>.Store下删除该表,然后使用Update Model from Database..命令检索该表。

关于sql - 无法将 “X”上的 “Y”属性设置为 'null'值。您必须将此属性设置为 'Int32'类型的非空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13420037/

相关文章:

sql - IN() 子句中的 PostgreSQL ORDER BY 值

java - 我们可以为单个数据库连接设置多个并行事务吗?

C++ USB 库

c# - 具有非标准命名约定的数据库的 POCO 别名

mysql - 如何让这个 SQL 查询更加优雅?

SQL COUNT(DISTINCT(field1)) GROUP BY MAX(filed2)

c# - Entity Framework 缓慢的 AddRange 插入到数据库

c# - ASP NET MVC 3 - 如何首先使用两个表和 Database.Setinitializer 在代码中重置数据库?

.net - 在 Visual Studio 中注册 MySql 数据提供者

c# - 如果该方法没有自己的 XML 注释,则在该方法实现的接口(interface)上获取 Intellisense