【问题标题】:Adding serialization information for MongoDB custom serializer为 MongoDB 自定义序列化程序添加序列化信息
【发布时间】:2015-04-15 08:46:43
【问题描述】:

我有一个类定义如下:

class Person
{
  public String Id { get; set; }
  public String Name { get; set; }
  public Person Mother { get; set; }
}

我已经为 Mother 属性实现了一个自定义序列化程序,以仅序列化 Id。最终的 BSON 看起来像这样:

[{
   "_id": "54df1095fa0bd7122cb2c550", 
   "name": "John", 
   "mother": { "_id": "54df1095fa0bd7122cb2c551" }
}]

如果我尝试执行查询以查找具有给定母亲的人,如下所示:

var results = await collection.Find<Person> (p => p.Mother.Id == "...").ToListAsync ();

司机抱怨如下:

{"无法确定表达式的序列化信息:p.Mother.Id."}

有没有办法向驱动程序添加序列化信息,以便它知道调用我的自定义序列化程序来反序列化 Person 以进行此类查询?

【问题讨论】:

    标签: c# serialization mongodb-.net-driver querying


    【解决方案1】:

    是的,您可以实现两个接口来提供序列化信息。 IBsonDocumentSerializerIBsonArraySerializer。在这种情况下,您需要在客户序列化程序上实现 IBsonDocumentSerializer 并处理成员名称 IdGetMemberSerializationInfo 调用。

    【讨论】:

      猜你喜欢
      • 2014-01-13
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      相关资源
      最近更新 更多