MongoDB c# 驱动程序:如何将对象列表序列化为对象 ID 列表
本文关键字:列表 对象 序列化 ID 驱动程序 MongoDB | 更新日期: 2023-09-27 18:34:35
令
我惊讶的是,我还没有找到这个问题的简单答案,所以在这里:
给定这样的对象模型 -
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# 驱动程序,这是您不想要的。