Linq to SQL-Vb.net日期时间

时间:2019-03-14 15:37:30

标签: vb.net linq linq-to-sql

如果我的Linq to SQL查询中的LastLogon Date为null,我试图显示Datetime.Minvalue。

Dim ExtUsrsQry = 
    (From qryItem In dc1.ExternalUserAccesses                                
     Where qryItem.QuarterId = GetCurrentQuarterId()
     Select Id = qryItem.Id,
         LastLogonDate = IIf((qryItem.LastLogonDate.HasValue), Convert.ToDateTime(qryItem.LastLogonDate).ToShortDateString(), DateTime.MinValue.ToShortDateString())
     ).ToList()

它不起作用。如何解决此查询?

1 个答案:

答案 0 :(得分:0)

我认为问题在于来自SQL的NULL DATETIME,这是.Net中的DateTime?。如果使用null coalescence

,您的代码将更加简单明了
Dim ExtUsrsQry =
    (From qryItem In dc1.ExternalUserAccesses
     Where qryItem.QuarterId = GetCurrentQuarterId()
     Select Id = qryItem.Id, LastLogonDate = If(qryItem.LastLogonDate, System.Data.SqlTypes.SqlDateTime.MinValue)
    ).ToList()

编辑

我更新了答案,以使空合并的If()返回System.Data.SqlTypes.SqlDateTime.MinValue而不是等效的.Net。