当我保存对数据库的更改时,我遇到了以下异常:
Cannot insert the value NULL into column 'Registered', table
'EIT.Enterprise.KMS.dbo.LicenseEntry'; column does not allow nulls.
INSERT fails. The statement has been terminated.
相关的代码优先模型属性如下所示:
[DatabaseGenerated(DatabaseGeneratedOption.Identity), DataMember]
public DateTime Registered { get; private set; }
...这就是我感到困惑的原因:据我所知,通过提供注释[DatabaseGenerated(DatabaseGeneratedOption.Identity)
,我命令 Entity Framework 自动生成该字段(在这种情况下:仅在创建时一次。)
因此,我希望有一个不可为空的(必需)字段,而无法手动更改 EF 处理的字段。
我究竟做错了什么?
笔记:
- 我不想使用 Fluent-API,因为我想使用 POCO。
- 该属性
defaultValueSql
也不是一个选项,因为我需要依赖独立于该项目的数据库(例如 forGETDATE()
)。 - 我正在使用实体框架 6 alpha 3,代码优先。