繁体   English   中英

IEnumerable <Entity> &#39;不包含异步任务方法的&#39;GetAwaiter&#39;定义

[英]IEnumerable<Entity>' does not contain a definition for 'GetAwaiter' for Async Task Method

我正在尝试从表中选择1条记录,但我不断收到的错误是

“ IEnumerable”不包含“ GetAwaiter”的定义,并且找不到找到接受类型为“ IEnumerable”的第一个参数的扩展方法“ GetAwaiter”(是否缺少using指令或程序集引用?)

public class IntermediaryAssignment
    {   
       public string Company{get;set:}
       public string RegistrationNumber{get;set:}
       public bool Dispatched{get;set:}
    }

public async Task<IntermediaryAssignment> PickOneSticker(string company, 
                  string registrationNumber)
    {
        var db = new DatabaseContext();
        var results = await (from s in db.IntermediaryAssignment
                             where s.Dispatched == false && s.CompanyCode == 
                             company && s.RegistrationNumber ==
                              registrationNumber orderby s.StickerCode 
                             ascending select s).ToList().Take(1);
        return results.FirstOrDefault();
    }
var results = await (from s in db.IntermediaryAssignment
                         where s.Dispatched == false && s.CompanyCode == 
                         company && s.RegistrationNumber ==
                          registrationNumber orderby s.StickerCode 
                         ascending select s).FirstOrDefaultAsync();
    return results;

如果您打算根据订单购买第一件商品,则最好使用不带ToList()Take(1) FirstOrDefault

FirstOrDefault实现查询,并从数据库中获取第一项。

ToList()如果您需要基于用于列表的过滤器获取项目。

在当前查询中.ToList().Take(1); ToList()将所有数据存储到内存中并获取第一个数据,您可以使用FirstOrDefault从数据库直接获取第一个数据,而不是其他数据

var db = new DatabaseContext();
    var results = await (from s in db.IntermediaryAssignment
                         where s.Dispatched == false && s.CompanyCode == 
                         company && s.RegistrationNumber ==
                          registrationNumber orderby s.StickerCode 
                         ascending select s).ToListAsync());

    return results.FirstOrDefault();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM