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

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...