访问" _t"来自LINQ的元素值

时间:2014-08-07 16:45:57

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

有没有办法获取" _t"的价值?从MongoCollection.AsQueryable()查询LINQ时文档中的元素?

我试过这个:

_collection.AsQueryable()
           .Where(t => t.ToBsonDocument()
                        .GetValue("_t") == "someValue");

但我得到例外:

  

无法确定表达式的序列化信息:   BsonExtensionMethods.ToBsonDocument(t)的.GetValue(" _t&#34)。

1 个答案:

答案 0 :(得分:0)

不,您无法直接访问_t中的值。但是,您可以使用LINQ使用GetTypeis来查询值:

_collection.AsQueryable().Where(doc => doc is Hamster);
_collection.AsQueryable().Where(doc => doc.GetType() == typeof(Squirrel));

这将生成以下查询:

{
    _t : "Hamster" 
}

{
    _t : "Squirrel"
}