0

假设我在 RavenDb 中有以下文档:

public class TopLevel
{
    public string Id { get; set; }
    public string Name { get; set; } 
}

public class NextLevel
{
    public string Id { get; set; }
    public string TopLevelId { get; set; }
    public string Name { get; set; }  
}

public class Leaf
{
    public string Id { get; set; }
    public string NextLevelId { get; set; }
    public string Name { get; set; }
}

以及以下视图模型:

public class TopLevelViewModel
{
    public string Id { get; set; }
    public string Name { get; set; }
    public List<NextLeveViewModell> NextLevels { get; set; }
}

public class NextLevelViewModel
{
    public string Id { get; set; }
    public string TopLevelId { get; set; }
    public string Name { get; set; }
    public List<LeafViewModel> Leaves { get; set; }
}

public class LeafViewModel
{
    public string Id { get; set; }
    public string NextLevelId { get; set; }
    public string Name { get; set; }
}

构建该视图模型而不需要大量访问数据库并手动收集/构建结构的最佳方法是什么?

我可以为此使用多地图吗?

可能是一个愚蠢的问题,但我有一段时间没有使用 RavenDb 了!一直在做 Android / iPhone 开发所以有点生疏!

4

1 回答 1

1

最好不要将它们作为单独的文档。一个文档可以包含所有这些。换句话说,您描述为视图模型的结构可以作为您的文档结构直接存储到数据库中。

当然,这意味着您将始终通过顶级 id 检索文档。如果没有这些节点所代表的额外上下文,很难说这是否合适。

此外,您似乎已经从RavenDB Google Group 上的这个帖子中获得了很好的反馈。以后尽量不要交叉发帖。如果你想要一些非常具体的东西,那么 StackOverflow 很棒。如果您需要更多一般的操作方法或想法辩论,请使用 Google 群组。

如果您可以更具体地编辑您的问题,也许显示您正在尝试的索引和查询,那么我会相应地更新。

于 2013-09-14T15:50:26.320 回答