RavenDb使用MultiMap构建复杂的视图模型?

时间:2013-09-13 11:04:18

标签: c# nosql ravendb document-database

说我在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; }
}

以下viewmodels:

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开发有点生疏!

1 个答案:

答案 0 :(得分:1)

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

当然,这意味着您将始终通过顶级ID检索文档。如果没有这些节点所代表的其他背景,很难说这是否合适。

此外,您似乎已经从this thread获得了有关RavenDB Google Group的良好反馈。尽量不要在将来交叉发帖。如果你想要一些非常具体的东西,那么StackOverflow就很棒。如果您需要更多关于创意的一般方法或辩论,请使用Google网上论坛。

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

相关问题