具有bsonextraelements的MongoDB C#映射递归对象

时间:2019-02-22 16:22:16

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

我有以下课程:

public class Property
{ 
    public string Description { get; set; }
    public object Value { get; set; }

    [BsonExtraElements]
    public IDictionary<string, Property> OtherData { get; set; }
} 

public class Device
{
   public string DeviceId { get; set; }
   public IDictionary<string, Property> Properties { get; set; }
}

我想要在json中实现并映射到这些类的是:

{  
   "DeviceId":"asd",
   "Properties":{  
      "PropertyA":{  
         "Description":"some info",
         "PropertyAB":{  
            "Description":"some info",
            "Value":"etc"
         }
      },
      "PropertyB":{  
         "Description":"some info",
         "Value":"etc"
      }
   }
}

因此,如您所见,我想以递归的方式使用ExtraElements来映射具体的“属性”模型。但是上面的代码将失败,因为BsonExtraElements只能在IDicionary接口中使用。 另外:

public class Property : IDictionary<string, Property>
{ 
    public string Description { get; set; }
    public object Value { get; set; }
}

不起作用。老实说,最需要这种语义。 (无需达到额外的属性OtherData) 但是我无法正确映射这两种语义。 有人尝试过类似的东西吗?任何提示如何实现这一目标?

0 个答案:

没有答案