作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
最近发布的 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/
我是一名优秀的程序员,十分优秀!