微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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值,并且如果此列在数据库中同时不可为空,并且实际上没有计算或标识 – 则会出现错误.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐