0

好的,所以我试图通过 SubSonic 2.x 将日期时间列设置为空

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 的日期太早了)。我得到'可空对象必须有一个值'

我一直在这里和谷歌搜索一些灵丹妙药来解决我认为是一个非常愚蠢的问题。SubSonic 一代中是否有什么需要更改以使其工作,或者我是否必须在 SQL 端编写一些愚蠢的触发器,如果​​日期带有 '1/1/1900' 将其更改为 NULL ?

帮助和感谢!

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

4

1 回答 1

1

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

于 2011-03-11T00:54:57.553 回答