Во-первых, чтобы исправить проблему Task
, вам нужно подождать, поэтому подпись вашего метода должна быть изменена на метод async
:
public async Task<IHttpActionResult> getAllDataCars()
Не волнуйтесь - он все равно будет работать по назначению. ASP. NET знает, что это такое.
А затем вы можете await
вызываемый метод asyn c:
dataAPICars = await carRep.GetAllCars();
Теперь, это немного изменит вашу основную проблему, но по-прежнему вызовет, по сути, ту же проблему:
Cannot implicity convert type Collection.Generic.List<Model> to Model
Проблема здесь в том, что у вас потенциально много автомобилей в списке, и вы хотите одну машину. Очевидно, что мы не можем преобразовать гараж, полный автомобилей, в одну машину, поэтому C# не может преобразовать список автомобилей в одну машину.
Предполагая, что может быть только одна запись, вы можно использовать SingleOrDefault
:
dataAPICars = (await carRep.GetAllCars()).SingleOrDefault();
Если их может быть несколько, но вам нужен только первый / последний, вы должны использовать .FirstOrDefault()
или .LastOrDefault()
:
dataAPICars = (await carRep.GetAllCars()).FirstOrDefault();
Если вам действительно нужен СПИСОК АВТОМОБИЛЕЙ, вам нужно заменить dataAPICars
на List<Model> dataAPICars
вместо Model dataAPICars
. Затем вы можете вернуть этот список вместо одного элемента и, конечно, изменить проверки с dataAPICars != null
на dataAPICars.Any()
, et c.
Если вам нужно что-то еще, вам придется выяснить Боюсь, как ваш список машин превращается в одну машину.