【问题标题】:MongoDB c# driver - How to save class by reference without modifying the object class?MongoDB c#驱动程序 - 如何在不修改对象类的情况下通过引用保存类?
【发布时间】:2017-06-18 13:24:18
【问题描述】:

我有 2 节课:

public class Store
{
   public Guid ID;
   public List<Product> Products;
}

public class Product
{
   public Guid ID;
   public string Name;
}

我想在我的 MongoDB 中保存“Store”,但 我不希望 Store 集合包含“Product”的内容(以节省空间\重复)。 我想创建另一个产品集合,并对匹配的文档使用某种 ID 引用。

MongoDB 2.4.4 c# 驱动程序是否支持此功能而不更改我的模型? (我无法修改它们 - 在 API 调用中使用)。如何实现?

【问题讨论】:

  • 请不要使用DBRef。许多操作根本不支持它。例如$lookup,这是一个核心功能,而不是特定于驱动程序的。
  • @NeilLunn 感谢您的评论,那么我可以使用哪个参考对象?
  • 你没有。一般来说,“关系”实际上是要在数据访问层中定义的领域逻辑。有很多方法可以做到这一点,意见也大相径庭。但是,您应该查看核心文档中的"Manual References" 以及我已经给您的$lookup 操作员链接。这应该给你足够的理解。 LINQ 指南中还有一个$lookup 示例。

标签: c# mongodb mongodb-query mongodb-.net-driver mongodb-csharp-2.0


【解决方案1】:

如果我理解正确的话,使用 [BsonIgnore] 就可以了。

MongoDB C# Driver: Ignore Property on Insert

【讨论】:

    猜你喜欢
    • 2017-05-22
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多