Получение максимальной даты и возврат даты по умолчанию, когда таблица пуста - PullRequest
0 голосов
/ 10 октября 2018

Как вернуть дату "1900/12/12 00:00:00", если в таблице нет строк?Я пытаюсь получить максимальную дату транзакции, и она работает хорошо, если в таблице есть строки, в противном случае я получаю сообщение об ошибке из-за формата даты в ToString().

string d = context.AllTransactions.Where(t => t.ID == OID)
                  .Max(t => t.TransactionDate).ToString("dd/MM/yyyy HH:mm:ss");

TransactionDate равно NOT NULL datetimeполе.

1 Ответ

0 голосов
/ 10 октября 2018

Используйте метод DefaultIfEmpty перед .Max (и поскольку он связан с сущностями, и вы не сможете создать новый объект транзакции, а затем сначала проектировать только даты):

var result = context.AllTransactions.Where(t => t.ID == OID)
                    .Select(t => t.TransactionDate)
                    .DefaultIfEmpty(new DateTime(1900,12,12)).Max();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...