gpt4 book ai didi

c# - Entity Framework 6 Code First 插入时的默认日期时间值

转载 作者:太空狗 更新时间:2023-10-29 21:34:25 25 4
gpt4 key购买 nike

当我将更改保存到数据库时,我遇到了以下异常:

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 自动生成字段(在这种情况下:创建时仅一次。)

所以我希望有一个不可为 null 的(必填)字段,而无法手动更改 EF 正在处理的字段。

我做错了什么?


注意事项:

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

最佳答案

试试这个:

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

问号使属性可以为空

关于c# - Entity Framework 6 Code First 插入时的默认日期时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17048125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com