0

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

给定这样的对象模型 -

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

4

1 回答 1

0

也许更好的欺骗候选人是MongoDB C# 驱动程序 - POCO 引用的序列化?

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

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

于 2013-10-10T17:09:45.937 回答