簡體   English   中英

'await'運算符只能在異步lambda表達式錯誤中使用

[英]The 'await' operator can only be used within an async lambda expression error

我有這個功能:

    public async Task<IEnumerable<RegionBreif>> GetAsync()
    {

    return await Table.Where(x => x.SiteId == _siteId).Select(r => new RegionBreif
    {
        IsServiceable = await RegionBreif.checkIfServicable(Context, r.SiteId, r.Id)
    }).ToArrayAsync();
}

而這個功能:

public static async Task<bool?> checkIfServicable(DbContext context, int? _siteId, int _regionId)
{
    var t = (from ir in context.Set<InspectionReview>()
             join so in context.Set<SiteObject>() on ir.ObjectId equals so.Id
             where so.SiteRegionId == _regionId && so.SiteId == _siteId
             select (bool?)
             ir.IsNormal);

    return t.Count() == 0 ? (bool?)null : t.Any(x => x.Value == false) ? false : true;
}

在這一行:

await RegionBreif.checkIfServicable(Context, r.SiteId, r.Id)

我收到此錯誤:

錯誤13'await'運算符只能在異步lambda表達式中使用。 考慮使用'async'修飾符標記此lambda表達式。

問題出在傳遞給Select的lambda表達式中。 如果要在類型create, RegionBreif使用await ,則必須傳遞async lambda表達式,如下所示:

Select(async r => new RegionBreif
{
    IsServiceable = await RegionBreif.checkIfServicable(Context, r.SiteId, r.Id)
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM