令我感到惊讶的是,我还没有找到这个问题的简单答案,所以在这里:
给定像这样的对象模型 -
public class Foo
{
public string Id {get; set;}
public List<Bar> Bars {get; set;}
}
public class Bar
{
public string Id {get; set;}
public string Name {get; set;}
}
如何自定义mongodb c#驱动程序以将Foo实例序列化为数据库中的文档,如下所示:
{ "Id" : "XXXXX", "Bars" : [ { "Id" : "XXXXX" }, { "Id" : "XXXXX" } ] }
Foos和Bars将存储在不同的集合中。所以,我不想做一些会影响所有Bars的事情,因为将Bar序列化到Bar集合应该保留Bar的所有属性。
我不希望在我的模型类中对mongodb驱动程序有任何依赖。
答案 0 :(得分:0)
也许更好的假人候选人MongoDB C# driver - serialization of POCO references?
无论如何,提供答案而不是对可能的欺骗感到兴奋:不,C#驱动程序无法做到这一点。
C#驱动程序相对较低,不会尝试成为对象文档映射程序。有人可能会开发一个基于C#驱动程序的ODM,因为它提供了许多钩子,但是,正如我在一个不同的答案中所指出的那样,这是一项极具挑战性的大任务,我认为结果总是如此漏。此外,使用钩子,您可能会在代码中依赖于C#驱动程序而不需要它。