C# RavenDB建模1到多个文档

C# RavenDB建模1到多个文档,c#,ravendb,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 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中的活动名称)
使用以下所述的非规范化引用方法:

(我确实看到了这一点,但无法理解语法,或者它是否符合我的需要

)

似乎有点符合我的情况。但是,当我用上述类型制作一个演示项目时,我注意到,如果我更改了一个地点名称,它在活动中不会更改。保持文档同步是一件大事

那么我该如何做到这一点呢?

菲尔

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

我确实考虑过将活动存储在位置中,但是这意味着当用户想在一个位置查看一个活动(整个文档将被返回)时,我会遇到问题。当你说“查询他们”时,你可以链接到我将如何在RavenDB做这件事。我可以在RDBMS中看到使用连接等,但在RavenDB中不确定。例如,如果我只想从“伦敦”位置文档中获取“油漆弹”,它不会返回整个伦敦文档吗?