MongoDb c # отображение рекурсивного объекта с помощью bsonextraelements - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть следующие классы:

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 может быть использован только в интерфейсе пользователя.Также:

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

не работает.И если честно, эта семантика была бы самой желанной.(нет необходимости достигать дополнительного свойства OtherData) Но ни та, ни другая семантика не могут быть отображены должным образом.Кто-нибудь пробовал что-то подобное раньше?Любые намеки, как этого добиться?

...