c# – 不声明datetime.now的实体框架为空

这是我的代码:

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

_context.SaveChanges();

现在,虽然这样说,但我得到了一个内在的例外:

Cannot insert the value NULL into column ‘CurrentDate’, table ‘bLinked.dbo.BlackbookUpdateUVC’; column does not allow nulls. INSERT fails.

如果我在此代码之前输出DateTime.Now,则输出:

9/15/2016 7:26:35 PM

我在db中将CurrentDate的数据类型设置为datetime,在类中将其设置为DateTime.既不允许空值,但DateTime.Now不应该为空吗?

最佳答案 当EF模型和数据库之间所谓的“存储生成模式”不匹配时,几乎总会发生这种情况.如果model列具有存储生成的Identity或Computed模式 – 这意味着EF将确保数据库在插入或更新时自动提供这些值,并且不需要将它们包含在INSERT或UPDATE语句中.缺少值将具有默认的NULL值,并且如果此列在数据库中同时不可为空,并且实际上没有计算或标识 – 则会出现错误.

点赞