MongoDb C#Driver版本2.1的发布最近重新引入了该方法AsQueryable
,但我很难找到一种异步调用它的方法.
使用Entity Framework可以实现,QueryableExtensions.ToListAsync
但是我看不到使用MongoDb的等价物.
因此给出了一个存储库方法,例如:
public IQueryableGetFiltered(Expression > predicate) { return Database.GetCollection (typeof(MyType).Name).AsQueryable().Where(predicate); }
我想做点什么
var myTypes = await MyRepository.GetFiltered(t => t.Id == 1).ToListAsync();
这可能吗?
你从GetFiltered
函数返回了错误的类型.它应该返回一个IMongoQueryable
而不是IQueryable
:
public IMongoQueryableGetFiltered(Expression > predicate) { return Database.GetCollection (typeof(MyType).Name).AsQueryable() .Where(predicate); }
然后,您可以成功将其命名为:
var myTypes = await MyRepository.GetFiltered(t => t.Id == 1).ToListAsync();