RavenDB建模1到多个文档

时间:2011-10-12 10:16:55

标签: c# ravendb

采用此示例模型:

public class Location
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}

public class Activity
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}

这些文件之间的关系是一个位置可以没有或有很多活动。说伦敦可以有彩弹,卡丁车等。

我做了将这些文档放入一个文档但是观看和阅读文档和博客的事情,需要单独访问这些文档。您可以想象每个位置列出活动和活动页面的网站页面,提供详细信息。

示例查询将是:

  • 获取所有位置
  • 获取位置详细信息(从URL指定位置名称)
  • 获取每个位置的所有活动(从URL指定位置名称)
  • 获取活动详细信息(从URL指定位置名称和活动名称)

使用描述于:

的DenormalizedReference方法

http://blogs.sonatribe.com/wayne/2011/07/06/using-denormalized-references-in-ravendb/

(我确实看到了这个,但无法弄清楚语法或它是否能满足我的需要

http://ravendb.net/faq/denormalized-references

似乎适合我的场景。但是在制作具有上述类型的演示项目时,我注意到如果我更改了位置名称,则它不会在活动中更改它。保持文档同步是一件大事。

那我该如何实现呢?

1 个答案:

答案 0 :(得分:2)

菲尔,

  • 在Activity中有一个字符串LocationId属性,允许您查询它们。
  • 将活动作为集合存储在Location中会更容易(因此它们不是单独的文档,而是嵌入在其中)。