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 に答える