为了使这个简短易懂,http ://mikaelkoskinen.net/mongodb-aggregation-framework-examples-in-c/展示了我想要完成的一些事情。此“ToDynamic”调用在从聚合返回的日期时间值上中断。
在了解我们需要一个 DateTime 之后,我能够将其转换为:
public static dynamic ToDynamic(this BsonDocument doc)
{
var json = doc.ToJson(new JsonWriterSettings { OutputMode = JsonOutputMode.TenGen });
dynamic obj = JToken.Parse(json);
return obj;
}
这能够成功地将这个对象转换为一个 JContainer,我可以使用以下方法解析它:
returnApp = BsonSerializer.Deserialize(service.apps.ToString(), typeof(MyMongoObject));
这一直有效,直到我们想要接收一个 ObjectId 并反序列化它。这组操作在“ToDynamic”调用中中断,因为它无法解析返回的 ObjectId。
有没有人找到一种将聚合框架结果转化为 POCO 的持续成功、优雅的方式?