[英]Entity Framework not claiming datetime.now is null
这是我的代码:
UVCUpdate update = new UVCUpdate();
update.CurrentDate = DateTime.Now;
_context.UVCUpdates.Add(update);
_context.SaveChanges();
现在,虽然这样说,但我得到了一个内在的例外:
无法将值NULL插入“CurrentDate”列,表'bLinked.dbo.BlackbookUpdateUVC'; 列不允许空值。 INSERT失败。
如果我在此代码之前输出DateTime.Now,则输出:
2016年9月15日下午7:26:35
我在db中将CurrentDate的数据类型设置为datetime,在类中将其设置为DateTime。 既不允许空值,但DateTime.Now不应该为空吗?
当EF模型和数据库之间所谓的“存储生成模式”不匹配时,几乎总会发生这种情况。 如果model列具有存储生成的Identity或Computed模式 - 这意味着EF将确保数据库在插入或更新时自动提供这些值,并且不需要将它们包含在INSERT或UPDATE语句中。 缺少值将具有默认的NULL值,并且如果此列在数据库中同时不可为空,并且实际上没有计算或标识 - 则会出现错误。
我很抱歉,我觉得自己像个白痴。 谢谢Leopard。
我去获取UVCUpdate类来向他展示,并意识到当我从另一个类复制该类时,我不小心在CurrentDate的类中留下了[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
。 因此,它可能尝试向SQL发送空值,因此SQL将创建一个ID,但该字段设置为不允许空值。 CurrentDate不应该是一个ID,所以我删除它,现在它的工作原理...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.