0

我在场景中,我需要使用 EF 4.1 在数据库中插入一个 dateTime 值。数据库中的 DateColumn 为 Nullable。

在创建实体时,我将其填充为,

 DTCLOSE = referenceProblemLog.DateClosed.HasValue ? 
            referenceProblemLog.DateClosed.Value.ToFeedFormatString() : 
            System.DBNull.Value.ToString(), 

其中 ToFeedFormatString 是一个扩展方法。

现在我观察到的问题是,如果我有一个正确的值,那么它会正确插入,但是 当我没有正确的日期值时,我想在数据库列中插入 NULL。但是 EF 正在使用空字符串保存列

我试图将字段的 StoreGeneratedPattern 更改为“身份”,但问题是,我无法为 DTCLose 字段分配值。

我怎样才能同时拥有这两种东西?1. EF 应在没有正确值时在数据库中插入 NULL 2. 否则为正确值

请帮忙

谢谢阿努普

4

2 回答 2

0

这是错误System.DBNull.Value.ToString()的,因为最后你将拥有字符串对象,ToString() 永远不会返回 null。

你必须设置DTCLOSE = null

此外,您不必使用 EF DBNull,您只需定义可为空的属性并设置它null

于 2012-09-25T12:56:08.807 回答
-2

你可以使用这个:

 Nullable<DateTime> date=null;
 var entity = new Model()
            {
                GoDate = date
            };

DataContext.Models.Add(entity);
DataContext.SaveChanges();
于 2016-02-10T02:17:43.617 回答