Я не могу для преобразования в async-действие. Он требует ждать
Вы приближаетесь к проблеме назад. Вы пытаетесь сделать силойGet_Fare_Type
быть асинхронным.
Намного лучше всего начать с «другой стороны», то есть с API-интерфейсом, который вы вызываете. Оцените свои вызовы API и определите, имеют ли они асинхронные альтернативы.
Затем, начните с этих API, измените их на использование асинхронных версий и используйте await
. В этом примере вы можете использовать EF6-х ToListAsync
:
public JsonResult Get_Fare_Type()
{
var types = (await db.Types.Select(e => new { ID = e.Code, Description = e.Description, Value = e.Code, SortOrder = e.SortOrder }).ToListAsync()).OrderBy(x => x.SortOrder);
return Json(types, JsonRequestBehavior.AllowGet);
}
Теперь компилятор выдаст ошибку на вас и сказать, что вам нужно сделать это async
и изменить тип возвращаемого значения Task<JsonResult>
. Это следующий шаг:
public async Task<JsonResult> Get_Fare_TypeAsync()
{
var types = (await db.Types.Select(e => new { ID = e.Code, Description = e.Description, Value = e.Code, SortOrder = e.SortOrder }).ToListAsync()).OrderBy(x => x.SortOrder);
return Json(types, JsonRequestBehavior.AllowGet);
}
Теперь каждый абонент этого метода необходимо использовать await
и т.д.
Не могли бы вы рассказать, как вы пытаетесь выполнить этот метод? – MadOX