3

我有一个类,其中有一个字典属性。

    [DataMember]
    [BsonElement("QueriableParameters")]
    public Dictionary<string, string> QueriableParameters
    {
        get;
        set;
    }

我正在使用新的 MongoDB c# 2.0 驱动程序,但似乎无法做到这一点:

var selectQuery1 = await collection.Find(s => s.QueriableParameters["UniqueLoanNumber"] == "3049793b-91eb-49d8-a5b4-7cbfd1a1bb3c").ToListAsync();

我收到此错误,指出:

InnerException: System.InvalidOperationException
   HResult=-2146233079
   Message=s.QueriableParameters.get_Item("UniqueLoanNumber") is not supported.
   Source=MongoDB.Driver
   StackTrace:
        at MongoDB.Driver.Linq.Translators.PredicateTranslator.GetSerializationInfo(Expression expression)
        at MongoDB.Driver.Linq.Translators.PredicateTranslator.BuildComparisonQuery(Expression variableExpression, ExpressionType operatorType, ConstantExpression constantExpression)

请帮我指出正确的方向。

谢谢,

4

3 回答 3

3

谢谢克雷格提供的信息。

我想现在唯一的方法是:

var builders = Builders<NotificationData>.Filter;
var filter = builders.Eq("QueriableParameters.UniqueLoanNumber", "theIdLookingfor");
var selectQuery = await collection.Find(filter).ToListAsync();
于 2015-04-10T20:04:58.870 回答
0

目前这是不可能的。此票已与此相关:https ://jira.mongodb.org/browse/CSHARP-917 。

克雷格

于 2015-04-10T19:01:44.853 回答
0

此问题已在最新的 Mongo C# 驱动程序版本(即 2.2.3)中得到解决。链接:https ://github.com/mongodb/mongo-csharp-driver

于 2016-04-26T07:31:45.083 回答