我有这个功能:
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 表达式中。如果你想在创建类型 RegionBreif
中使用 await
,你必须传递一个 async
lambda 表达式,如下所示:
Select(async r => new RegionBreif
{
IsServiceable = await RegionBreif.checkIfServicable(Context, r.SiteId, r.Id)
})
关于c# - 'await' 运算符只能在异步 lambda 表达式错误中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33585641/