Linq to SQL - Vb.net дата и время - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь отобразить Datetime.Minvalue, если LastLogon Date равно нулю в моем запросе Linq to SQL.

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 голосов
/ 14 марта 2019

Я думаю, что проблема связана с NULL DATETIME, исходящим из SQL, который является DateTime? в .Net.Ваш код был бы намного проще и понятнее, если бы вы использовали 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()

EDIT

Я обновил ответ, чтобы иметь нулевое объединение If (), возвращающее System.Data.SqlTypes.SqlDateTime.MinValue вместо .Net эквивалента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...