Я начал с возврата пользовательского класса:
[HttpGet()]
public ActionResult<Round> Get(string id) =>
this._roundsService.Get(id);
Метод Get в службе раундов может возвращать ноль, и он преобразуется в HTTP 204 Нет содержимого. Мне было интересно, как вернуть 404, когда я получаю нулевое значение:
[HttpGet()]
public ActionResult<Round> Get(string id) =>
this._roundsService.Get(id) ?? NotFound();
Возможно, это не работает и выдает ошибку CS0019: Operator '??' cannot be applied to operands of type 'Round' and 'NotFoundResult'
Я открыт для другого -liners, которые бы возвращали нужный объект, если не ноль, и 404. если ноль.
Я использую C# 8.0 с каркасом netcoreapp3.0. Я не включил обнуляемую функцию. Может ли это быть причиной проблемы?
На всякий случай, вот метод в классе обслуживания:
public Round Get(string id) =>
this._rounds.Find(round => round.Id == id).FirstOrDefault();