Await关键字不能在以下代码中使用。我找不到原因

时间:2014-08-25 01:02:08

标签: c#-4.0 asp.net-web-api2

为什么我不能在下面的块中使用await?

如果我在以下代码中使用await关键字,则VS抛出编译错误。

[ResponseType(typeof (ApiTableDetailDto))]
    public async Task<IHttpActionResult> GetApiTable(int id)
    {
        var apiTable = await Mapper.Map<ApiTableDetailDto>(_unitOfWork.ApiTableRepository.GetById(id));
        if (apiTable == null)
        {
            return NotFound();
        }
        return Ok(apiTable);
    }

请提出建议。

1 个答案:

答案 0 :(得分:0)

这个问题实际上已经被@ shf301回答了,但我想我会举一个关于如何在这种情况下等待的例子。

如果_unitOfWork有异步方法,那么你可以这样做:

var response = await _unitOfWork.ApiTableRepository.GetByIdAsync(id);
var apiTable = Mapper.Map<ApiTableDetailDto>(response);