2015-11-18 27 views
1

我正在嘗試使用mongodb新的c#驅動程序,它的版本是2.x。 我要檢索的所有Entity對象爲List<Entity>,然而,ToListAsync似乎只返回List<BsonDocument>C#mongodb驅動程序2.0,如何使ToListAsync()返回列表<Entity>?

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

我怎樣才能得到List<Entity>

回答

1

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

這裏是你的代碼,更新爲使用這個方法:

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

您可能需要在[BsonIgnoreExtraElements]屬性添加到您的Entity類,以使這項工作。

+0

這是可能的我的'實體'不包含名爲'_id'的字段? – tesla1060

+0

如果我正確理解你的問題,那麼我相信它應該是可能的,是的。 – Donut

相關問題