【发布时间】:2018-07-21 06:24:43
【问题描述】:
我是异步编程的新手。我正在研究必须使用异步等待方法模式的项目。为此,我在我的存储库项目中创建了一个方法
public async Task<IEnumerable<InventoryProductMaster>> GetInventoryProducts(long OrganizationMasterID)
{
return await _msbmInventoryDbContext.Set<InventoryProductMaster>().Where(a => a.OrganizationMasterID == OrganizationMasterID);
}
我想将此函数的结果用于我的控制器方法中。
[HttpGet]
public async Task<ActionResult> Create()
{
long organizationMasterID = Convert.ToInt64(System.Web.HttpContext.Current.Session["LoggedInOrganizationMasterID"]);
var _materialTypeEntity = await _inventoryUnitOfWork.InventoryProductMasters.GetInventoryProducts(organizationMasterID).ToListAsync();
return View();
}
显示错误消息:“IQueryable”不包含“GetAwaiter”的定义,并且找不到接受“IQueryable”类型的第一个参数的扩展方法“GetAwaiter”(您是否缺少using 指令还是程序集引用?)
请帮助我。提前致谢
【问题讨论】:
-
你不能只是
await任何方法,这不是它的工作原理。您需要回归基础并了解其工作原理。 -
大多数异步 BCL 方法在方法名称后缀中都有 ___Async。您在 repo 中调用的方法不是因为它不是异步的。
标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-5