我正在使用Asp.Net MVC 4中的实体框架测试脚手架(通过以下this article)。我得到它工作正常,除了即使我的域对象在字段中允许null并且数据库字段允许null我得到错误消息:
无法将值NULL插入列'IsSuccessful',表'MyTestProject.Persistence.TestContext.dbo.Prediction';列不允许空值。更新失败。 声明已经终止。
我的域对象如下所示:
public class Prediction
{
[Key]
public int Id { get; set; }
[Required]
public string Title { get; set; }
[Required]
public string Description { get; set; }
public bool? IsSuccessful { get; set; }
}
生成的网页将IsSuccessful显示为一个带有选项NotSet,True和False的下拉框。在数据库中,列IsSuccessful允许为null。我仍然收到错误消息。如果我选择True或False(它在数据库中正确保存),一切正常,但是当我选择NotSet时则不行。
肯定有办法解决这个问题吗?
一些细节:
答案 0 :(得分:1)
该错误消息看起来像是直接来自SQL Server。如果服务器说该列不可为空,则该列不可为空。毕竟,它最了解。
高音检查该列在数据库中是否可以为空。还要考虑:
Halvard.Prediction
,其中 - 代码正在查看dbo.Prediction
?