实体框架没有声明日期时间.现在是空的

本文关键字:时间 日期 框架 声明 实体 | 更新日期: 2023-09-27 18:07:04

下面是我的代码:

UVCUpdate update = new UVCUpdate();
update.CurrentDate = DateTime.Now;
_context.UVCUpdates.Add(update);
_context.SaveChanges();

现在我得到一个内部异常,虽然说:

不能插入值NULL到列'CurrentDate',表'bLinked.dbo.BlackbookUpdateUVC';列不允许为空。插入失败。

如果我输出DateTime。现在,在这段代码之前,它输出:

9/15/2016 7:26:35 PM

我的数据类型CurrentDate在数据库中设置为datetime,在类中设置为datetime。两者都不允许为空,但是DateTime。现在不应该是零,对吧?

实体框架没有声明日期时间.现在是空的

当EF模型和数据库之间的所谓"存储生成模式"不匹配时,几乎总是会发生这种情况。如果模型列具有存储生成的Identity或Computed模式-这意味着EF将确保这些值将在插入或更新时由数据库自动提供,并且不需要在insert或update语句中包含它们。缺失的值将具有默认的NULL值,如果该列同时在数据库中是非空的,并且没有真正计算或标识-您有问题的错误。

对不起,伙计们,我觉得自己像个白痴。感谢Leopard。

我去拿UVCUpdate类给他看,并意识到当我从另一个类复制这个类时,我不小心把[DatabaseGenerated(DatabaseGeneratedOption.Identity)]留在了CurrentDate类中。因此,它很可能试图向SQL发送一个空值,以便SQL创建一个ID,但是该字段被设置为不允许为空。CurrentDate不应该是一个ID,所以我删除了它,现在它工作了。