如何在EF 4.1中的数据库的可空列中插入null或有效值

时间:2012-09-25 11:58:28

标签: entity-framework

我在scenerio中,我需要使用EF 4.1在数据库中插入dateTime值。  Nullable中数据库中的DateColumn。

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

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

其中ToFeedFormatString是一种扩展方法。

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

保存列

我尝试将字段的StoreGeneratedPattern更改为“Identity”,但问题是,我无法为DTCLose字段赋值。

我怎么能拥有这两件事? 1.当没有适当的值时,EF应该在数据库中插入NULL 2.适当的值否则

请帮忙

由于 阿努普

2 个答案:

答案 0 :(得分:0)

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

您必须设置DTCLOSE = null

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

答案 1 :(得分:-2)

你可以使用它:

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

DataContext.Models.Add(entity);
DataContext.SaveChanges();
相关问题