无法等待“;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。

无法等待“;ProjectName.Models.Class”;

当然,您不能等待db….SingleOrDefault(…)SingleOrDefault是同步的,并返回一个实际的非Task对象。

你需要在这里使用SingleOrDefaultAsync(…)才能等待它。

为什么你不能使用它是另一个问题,但这是你应该问自己的问题。你有必要进口的吗?例如System.Data.Entity