加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Entity Framework 6 Code First插入时的第一个默认日期时

发布时间:2020-12-15 08:42:40 所属栏目:百科 来源:网络整理
导读:当我保存对数据库的更改时,我遇到了以下异常: 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. 相关代码第一个模型属
当我保存对数据库的更改时,我遇到了以下异常:
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)我命令实体框架自动生成字段(在这种情况下:在创建时只有一次) .)

所以我期望有一个不可为空(必需)的字段,没有可能在EF处理的情况下手动改变字段.

我究竟做错了什么?

笔记:

>我不想使用Fluent-API,因为我想使用POCO.
>属性defaultValueSql也不是一个选项,因为我需要依赖该项目的数据库(例如GETDATE()).
>我正在使用Entity Framework 6 alpha 3,Code First.

解决方法

试试这个:
[DatabaseGenerated(DatabaseGeneratedOption.Identity),DataMember]
public DateTime?            Registered          { get; private set; }

问号使该属性可以为空

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读