1

我正在使用MongoRepository并希望在两个不同的集合之间创建引用。

例如,表单可以具有指向表单的链接。它将表示为:

public class Form : IEntity{
     public string Id {get;set;}
     public string Report {get;set;} // represents the string form of the ObjectId
}

public class Report : IEntity{
     public string Id {get;set;}
}

我想获取带有嵌套报表的表单文档,例如:

static MongoRepository<Form> forms = new MongoRepository<Form>();
var form = forms.Single(f => f.id == "1");

结果如下:

{
    "id": "1",
    "Report": {
        "id": "2"
    }
}

在这个框架内这可能吗?是否可以仅使用 C# 驱动程序库?

4

1 回答 1

3

不太了解,MongoRepository但在官方驱动程序中,您可以:

  1. 有一个文档包含另一个集合中不同文档的 ID(基本上是外键),但这意味着您必须执行“在客户端加入”,选择第一项并使用 ID 选择另一个。
  2. 您可以将第二个项目(在这种情况下为报告)完全存储在第一个项目中。这意味着它是一个内部文档,与它的父级位于同一个集合中,您可以在一次调用中同时选择它们。

MongoRepository可能不会增加太多。它只能从你身上抽象出那种逻辑......

于 2014-01-23T22:10:27.093 回答