通过以下方式将空日期保存到SQL2008。 SubSonic 2.x

时间:2011-03-11 00:42:13

标签: c# sql-server-2008 datetime nullable subsonic2.2

好的,所以我试图通过SubSonic 2.x

将datetime列设置为null
DateTime? dt = new DateTime();
dt= null;
Datum pd = (new DatumCollection()
                    .Where(Datum.Columns.Data, cp[0].Data)
                    .Load())[0];

                pd.dtAcceptance = (DateTime)dt;
                pd.Save();

即使数据库列允许空值,它也不会保存,我尝试了其他几个选项,包括将其设置为DateTime.MinValue(1/1/0001太早了我猜的日期) )。我得到'Nullable对象必须有值'

我一直在这里和谷歌寻找一些神奇的子弹来解决我认为非常愚蠢的问题。我是否需要更改SubSonic生成以允许它工作,或者我必须在SQL端编写一些愚蠢的触发器,如果​​日期是'1/1/1900'将其更改为NULL?< / p>

帮助和谢谢!

堆栈: “可以为空的对象必须有一个值。”    在System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource资源)    在System.Nullable`1.get_Value()    在C:\ dev \ app \ server \ Services \ Decision.cs中的Services.Decision.OnDecline(Int32 nParticipantID,Int32 nSessionID):第426行

1 个答案:

答案 0 :(得分:1)

稀释。您正在将dt转换为DateTime,但您需要将其转换为可为空的DateTime (DateTime?)