实体框架将NULL写入DB

时间:2018-03-29 14:43:24

标签: entity-framework entity-framework-6 entity

我使用的是EF v 6.2.0。我的问题类似于SOF问题 - Entity Framework not claiming datetime.now is null。但是,建议的解决方案对我不起作用。

buildDetail.BuildTime = epoch.AddMilliseconds(Double.Parse(buildTime)).ToLocalTime();
:
:
: // Other properties.    

ps.dbEntities.BuildDetails.Add(buildDetailT);

ps.dbEntities.SaveChanges();

在SaveChanges()行上,我得到一个异常

Inner Exception 2:
SqlException: Cannot insert the value NULL into column 'BuildTime', table 'BuildDetailsDB.dbo.BuildDetails'; column does not allow nulls. INSERT fails.
The statement has been terminated.

当我在调试中悬停时,buildDetail.BuildTime属性将值显示为 {3/29/2018 9:17:22 AM} ,即当前日期时间。 Sql Server中的数据类型是datetime,我从数据库生成的模型显示该字段的返回值为System.DateTime。所以,我很沮丧为什么EF试图插入一个null。实际上,如果我在DB中为这些列允许空值,那就是它在该列中写入的内容 - NULL。

相关字段既未标记为Identity(在模型和数据库中),也未标记为计算。我还从数据库更新了模型,它们是同步的。

注意:我已经尝试过DateTime.ParseExact,甚至是一个DateTime对象,该字符串的转换格式与SQL Server中预期的格式完全相同,即" yyyy-MM-DD HH:MM:SS.FFF&#34 ;没有运气和同样的例外。例如。

buildDetailT.BuildTime = DateTime.Parse("2018-11-25 08:25:26.0000");

0 个答案:

没有答案