无法等待“;ProjectName.Models.Class”;
本文关键字:Models Class ProjectName 等待 | 更新日期: 2023-09-27 18:23:57
我正试图使用DTO从数据库中检索一些数据。我在课堂上学习了一个指导性的例子,但由于某种原因,它还没有等到我的课上。这是一段代码。
// GET api/Orders/5
[ResponseType(typeof(OrderDetailDTO))]
public async Task<IHttpActionResult> GetOrder(int id)
{
var order = await db.Orders.Include(o =>o.drug).
Include(o=>o.patient).Include(o => o.doctor).Select(o => new OrderDetailDTO()
{
Id = o.Id,
instruction = o.instruction,
quantity = o.quantity,
totalPrice = o.totalPrice,
patientName = o.patient.name,
doctorName = o.doctor.name,
drugName = o.drug.drugName
}).SingleOrDefault(o => o.Id == id);
if(order == null)
{
return NotFound();
}
return Ok(order);
}
知道吗?
需要补充的一些内容:在这个例子中,我应该以结束
}).SingleOrDefaultAsync(o => o.Id == id);
但它只允许SingleOrDefault。我已经仔细检查了我的使用字段,但没有什么特别的错误。
编辑:谢谢你的回复!我已经解决了我的问题。
我已经了解到,我需要使用SingleOrDefaultAsync来返回一个不可用的对象。SingleOrDefaultAsync需要EF6。
当然,您不能等待db….SingleOrDefault(…)
。SingleOrDefault
是同步的,并返回一个实际的非Task对象。
你需要在这里使用SingleOrDefaultAsync(…)
才能等待它。
为什么你不能使用它是另一个问题,但这是你应该问自己的问题。你有必要进口的吗?例如System.Data.Entity
?