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();
}
您正试图将可为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