无法使用 MongoDB C# 2.0 驱动程序查询词典项目
Unable to to query Dictionary item using MongoDB C# 2.0 Drivers
我有一个 class,里面有字典 属性。
[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)
请帮我指明正确的方向。
谢谢,
这目前是不可能的。此工单已提交与此相关的文件:https://jira.mongodb.org/browse/CSHARP-917.
克雷格
谢谢克雷格提供的信息。
我想现在唯一的办法是:
var builders = Builders<NotificationData>.Filter;
var filter = builders.Eq("QueriableParameters.UniqueLoanNumber", "theIdLookingfor");
var selectQuery = await collection.Find(filter).ToListAsync();
此问题已在最新的 Mongo C# 驱动程序版本(即 2.2.3)中得到解决。
Link: https://github.com/mongodb/mongo-csharp-driver
我有一个 class,里面有字典 属性。
[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)
请帮我指明正确的方向。
谢谢,
这目前是不可能的。此工单已提交与此相关的文件:https://jira.mongodb.org/browse/CSHARP-917.
克雷格
谢谢克雷格提供的信息。
我想现在唯一的办法是:
var builders = Builders<NotificationData>.Filter;
var filter = builders.Eq("QueriableParameters.UniqueLoanNumber", "theIdLookingfor");
var selectQuery = await collection.Find(filter).ToListAsync();
此问题已在最新的 Mongo C# 驱动程序版本(即 2.2.3)中得到解决。 Link: https://github.com/mongodb/mongo-csharp-driver