我在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.适当的值否则
请帮忙
由于 阿努普
答案 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();