MongoDB c#驱动程序:如何将对象列表序列化为对象ID列表?

时间:2013-10-09 21:51:11

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

令我感到惊讶的是,我还没有找到这个问题的简单答案,所以在这里:

给定像这样的对象模型 -

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驱动程序有任何依赖。

1 个答案:

答案 0 :(得分:0)

也许更好的假人候选人MongoDB C# driver - serialization of POCO references?

无论如何,提供答案而不是对可能的欺骗感到兴奋:不,C#驱动程序无法做到这一点。

C#驱动程序相对较低,不会尝试成为对象文档映射程序。有人可能会开发一个基于C#驱动程序的ODM,因为它提供了许多钩子,但是,正如我在一个不同的答案中所指出的那样,这是一项极具挑战性的大任务,我认为结果总是如此漏。此外,使用钩子,您可能会在代码中依赖于C#驱动程序而不需要它。