考虑这个示例模型:
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 )
似乎有点符合我的情景。但是当我使用上述类型制作演示项目时,我发现如果我更改了位置名称,则在活动中没有更改它。保持文档同步是一件大事。那么我该如何实现这一点呢?