Как обработать ноль в Entity Framework Core, используя FirstAsync? - PullRequest
0 голосов
/ 24 июня 2019
  public async Task<ParagemRegisto> GetParagemRegistoOnGoingAsync(int registoId)
  {
        return await = _context.ParagensRegistos
            .Where(pr => pr.RegistoId == registoId && pr.HoraFim == null)
            .FirstAsync();
  }

Это вызывает исключение нулевой ссылки, когда записи не найдены.Как я могу сделать так, чтобы он возвращал ноль, если это так?

Ответы [ 2 ]

3 голосов
/ 24 июня 2019

Вы можете использовать FirstOrDefaultAsync .

2 голосов
/ 24 июня 2019
public async Task<ParagemRegisto> GetParagemRegistoOnGoingAsync(int registoId)
{
    var result = await _context.ParagensRegistos
        .Where(pr => pr.RegistoId == registoId && pr.HoraFim == null)
        .FirstOrDefaultAsync();

    return result ?? new List<ParagemRegisto>();
}

FirstOrDefaultAsync всегда возвращает значение по умолчанию, а не вызывает исключение.Так что, если нет записей, вы можете проверить, что было возвращено.В этом случае мы проверяем на нулевое значение, и если это так, мы пытаемся вернуть пустой список.

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