我正在使用 MySQL数据库在.NET 4.0 MVC4上开发一个网站,我得到的这个“属性不能设置为空值”错误。
说明
我在MySQL数据库中有几个表,其中大多数都包含可空属性(大多数是字符串)。然后,在我的.NET项目中,我有我使用向导创建的.edmx文件,因此该文件是从我已经拥有的数据库中自动生成的。
但是在我测试时,我得到了我已经提到的这个错误。所以我做了一点研究,我发现问题是这样的:
_propertyName = StructuralObject.SetValidValue(value, false);
该行,它验证属性的值不为null,即使在数据库客户端(在我的例子中是HeidiSQL)上选中了'Nullable'复选框。我发现的临时解决方案是,如果我在该行中将'false'更改为'true',它就可以工作。它看起来像这样:
_propertyName = StructuralObject.SetValidValue(value, true);
问题是我在不同的表中有很多可以为空的属性,我需要找到一种方法让EntityFramework理解我希望这些属性允许null作为值,而不必搜索Designer中的每个字段并手动更改。