c# - 如何将 AsQueryable 方法与 MongoDb C# Driver 2.1 异步使用?

标签 c# mongodb linq mongodb-.net-driver

最近发布的 MongoDb C# 驱动程序 2.1 版重新引入了方法 AsQueryable,但我正在努力寻找一种异步调用它的方法。

使用 Entity Framework ,这将使用 QueryableExtensions.ToListAsync 来实现,但我看不到使用 MongoDb 的等效项。

所以给定一个存储库方法,例如:

public IQueryable<MyType> GetFiltered(Expression<Func<MyType, bool>> predicate)
{
        return Database.GetCollection<MyType>(typeof(MyType).Name).AsQueryable().Where(predicate);
}

我想做类似的事情

var myTypes = await MyRepository.GetFiltered(t => t.Id == 1).ToListAsync();

这可能吗?

最佳答案

您从 GetFiltered 返回了错误的类型功能。它应该返回 IMongoQueryable<MyType>而不是 IQueryable<MyType> :

public IMongoQueryable<MyType> GetFiltered(Expression<Func<MyType, bool>> predicate)
{
    return Database.GetCollection<MyType>(typeof(MyType).Name).AsQueryable()
        .Where(predicate);
}

然后您可以成功地将其称为:

var myTypes = await MyRepository.GetFiltered(t => t.Id == 1).ToListAsync();

关于c# - 如何将 AsQueryable 方法与 MongoDb C# Driver 2.1 异步使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34042367/

相关文章:

python - 使用 PyMongo 使用自己的值更新所有 MongoDB 字段

python - pylons mongoengine 类型对象 'Section' 没有属性 _data

java - Java 中的 MongoTimeoutException。收到问题之前没有进行任何更改

c# - 选择对象集合的列/字段并导出为 List<>

c# - 如何简化此方法的表达式参数?

c# - 如何在没有数据库的情况下生成仅用于显示用户在 c# 表单应用程序中填写的表单数据的 Crystal 报表

c# - 为什么 Lambda 变量范围存在于 LINQ 查询之外?

c# - Linq to Entities 无法识别 string.Format 或串联 '+'

c# - .NET Web api 2 在 IIS 中的某个时间后停止工作

c# - AppFabric CreateRoutingClient 错误