LINQ查询问题日期时间转换

本文关键字:时间 转换 日期 问题 查询 LINQ | 更新日期: 2023-09-27 18:28:47

在执行LINQ时,我收到了此错误。"无法将类型"System.DateTime?"隐式转换为"System.DateTime'"。存在显式转换(是否缺少强制转换?)"

我知道这是因为数据类型,但转换不起作用,还有其他方法吗。这是我的密码。

        {var tvr = from t in ce.tbl_TVRinfo
                  where t.TVRID == fTVRid
                  select new TVRDetails
                  {
                      TVRID = t.TVRID,
                      Ename = t.Ename,
                      Esdw = t.Esdw,
                      Edob =t.Edob, //this field is causing date conversion error
                      Epob = t.Epob,
                      Equalification = t.Equalification,
                      NIC = t.NIC,
                      EAddress = t.EAddress
                  }
        return tvr.ToList();
         }

LINQ查询问题日期时间转换

您正试图将可为null的DateTime分配给标准DateTime。如果你确信Nullable DateTime包含一个值,那么你可以这样做:

Edob =t.Edob.Value

或者,如果你不确定它是否有价值:

Edob = t.Edob.HasValue ? t.Edob.Value : SomeOtherValidDateTimeValue

您可以进行

Edob = (DateTime)t.Edob

但是如果t.Edob为null,则会引发异常。如果Edob为null,最好提供一个默认的日期时间。NULL合并运算符在这里很有用。

Edob = t.Edob ?? DateTime.Now // Or DateTime.MinValue, or whatever makes sense in your situation