2016-05-11 2 views
0

Я не могу преобразовать в асинхронное действие. Он требует ждатьнужна помощь при преобразовании в async

public async Task<JsonResult> Get_Fare_TypeAsync() 
      { 
       var types = db.Types.Select(e => new { ID = e.Code, Description = e.Description, Value = e.Code, SortOrder = e.SortOrder }).ToList().OrderBy(x => x.SortOrder); 


       return Json(types ,JsonRequestBehavior.AllowGet); 
      } 
+0

Не могли бы вы рассказать, как вы пытаетесь выполнить этот метод? – MadOX

ответ

0

Чтобы использовать async, вам также нужно использовать его также.

Вот пример:

public async Task<JsonResult> Get_Fare_TypeAsync() 
      { 
       var types = db.Types.Select(e => new { ID = e.Code, Description = e.Description, Value = e.Code, SortOrder = e.SortOrder }).ToList().OrderBy(x => x.SortOrder); 


       return Json(types ,JsonRequestBehavior.AllowGet); 
      } 

Для вызова этого метода вы должны сделать следующее:

JsonResult result = await Get_Fare_TypeAsync 

Больше объяснения можно найти здесь: Asynchronous Programming with async and await (C#)

1

Я не могу для преобразования в 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 и т.д.

Смежные вопросы