繁体   English   中英

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

[英]MongoDB c# driver: How to serialize a list of objects as a list of object ids?

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

给定这样的对象模型-

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将存储在不同的集合中。 因此,我不想做会影响所有Bar的事情,因为将Bar序列化为Bar集合应该保留Bar的所有属性。

我不想在模型类中对mongodb驱动程序有任何依赖性。

也许更好的候选对象应该是MongoDB C#驱动程序-POCO引用的序列化?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM