C#mongodb驱动2.0,如何让ToListAsync()返回List <entity>?

时间:2015-11-18 10:50:50

标签: c# mongodb

我正在尝试使用mongodb新的c#驱动程序,即版本2.x。 我想将所有Entity对象检索为List<Entity>,但ToListAsync似乎只返回List<BsonDocument>

var collection = _db.GetCollection<Entity>("EntityTable");  
var ret = await collection.Find("{}").Project(Builders<Enity>.Projection.Exclude("_id")).ToListAsync();

我如何获得List<Entity>

2 个答案:

答案 0 :(得分:1)

只需使用As<TResult>()方法(它是MongoDB.Driver.IFindFluent<TDocument, TProjection>界面的一部分)。

这是您的代码,已更新为使用此方法:

var ret = await collection
    .Find("{}")
    .Project(Builders<Entity>.Projection.Exclude("_id"))
    .As<Entity>()
    .ToListAsync();

您可能需要将[BsonIgnoreExtraElements]属性添加到Entity类才能使其正常工作。

答案 1 :(得分:0)

是@Donut,您也可以这样使用

    var ret = await collection
.Find("{}")
.Project<Entity>(Builders<Entity>.Projection.Exclude("_id"))
.ToListAsync();