Драйвер MongoDB C # - сериализация ссылок POCO?

Я изучаю MongoDB в данный момент. Насколько я понимаю, официальный драйвер C # может выполнять сериализацию и десериализацию POCO . Что я еще не нашел информации, так это то, как сериализуется ссылка между двумя объектами. [Я говорю о чем-то, что может быть представлено как два отдельных документа со ссылками ID, а не встроенными документами.

Может ли механизм сериализации справиться с такой ситуацией? (1):

class Thing {
    Guid Id {get; set;}
    string Name {get; set;}
    Thing RelatedThing {get; set;}
}

Или мы должны пожертвовать ООП и сделать что-то подобное? (2):

class Thing {
    Guid Id {get; set;}
    string Name {get; set;}
    Guid RelatedThing_ID {get; set;}
}

ОБНОВЛЕНИЕ:

Просто пара связанных вопросов, тогда ...

a) Если сериализатор может справиться с ситуацией (1). Каков пример того, как это сделать без использования встраивания?

б) При использовании встраивания можно ли будет запросить все «Вещи», независимо от того, являются ли они «родительскими» или встроенными элементами? Как будет выглядеть такой запрос?

7
задан Peter Mortensen 7 September 2011 в 19:00
поделиться