如何在FindAsync MongoDb C#中使用async方法

ev7lccsx  于 2023-03-29  发布在  Go
关注(0)|答案(1)|浏览(150)

我需要从异步存储库方法中获取用户姓氏并与搜索文本进行比较,但我不知道如何在MongoDb FindAsync方法中等待它。

filtered =(await _orders.FindAsync(async x => (await _userRepository.GetUserById(x.OperatorId))!.Surname.ToLower().Contains(search))).ToList();
public async Task<User?> GetUserById(string? id)
{
    var res = (await _users.FindAsync(x => x.UserId == id)).FirstOrDefault();
        
    return res is null ? null : EntityConverter.ConvertUser(res); 
}

编译器告诉我
“async”匿名函数的返回类型必须是“void”、“Task”、“Task”、类似任务的类型、“IAsyncEnumerable”或“IAsyncEnumerator”
我的数据库订单模型只包含id(operatorId,masterId)。我想通过parametr(operator姓,master姓等)获得过滤订单列表,当我获得用户(operator或master)获得他的姓时,我需要使用await将Task转换为User,但使用await需要async lambda。在lambda中使用async导致IDE错误(有问题)。对不起,我的错误:3

gojuced7

gojuced71#

使用这种语法是因为你有一些适合内存的结果。

List<DBInfo> infoList2 = await collection.Find(_ => _.type == "DB").ToListAsync();

在这里找到更多的例子https://github.com/iso8859/learn-mongodb-by-example/tree/main/dotnet

相关问题