在RavenDB中将相关文档表示为一个对象

时间:2016-05-23 15:01:02

标签: ravendb

我刚刚开始使用RavenDB并研究了相关文档的文档。我正在考虑的系统有两个类,Family和Member。

一个家庭可以有很多会员,一个会员可以属于许多家庭。成员也可以单独检索并更新。从我正在阅读的内容来看,对此进行建模的正确方法是为家庭提供一份文件,为会员提供另一份文件。并且让Family包含MemberIds列表。

大!

上述方法在RavenDB网站https://ravendb.net/docs/article-page/3.0/csharp/indexes/querying/handling-document-relationships

上进行了描述

但是,这意味着您可以单独处理每个对象。你必须"获取"每个Member对象通过使用单独的Load命令单独。即使你使用Include to" prefetch"进入会话的所有相关对象,您仍然必须为每个对象发出单独的Load命令。

这意味着Family对象不包含Member对象列表,但只包含MemberIds列表。

这是我的问题:有没有办法让RavenDB从相关文档中返回一个复杂的对象,这样当你找回一个Family对象时,它会包含一个相关的成员对象列表?我知道如果你将成员对象直接放在族对象中,这可以做到,但这不允许在其他地方(其他家族)使用成员对象。

此外,有没有办法告诉RavenDB"解构"将某些嵌入式列表存入相关文档而不是将其存储在同一文档中?

这似乎是一件非常有用的事情。

1 个答案:

答案 0 :(得分:0)

你可以使用变压器,是的。