Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ravendb Raven数据库层次结构问题_Ravendb - Fatal编程技术网

Ravendb Raven数据库层次结构问题

Ravendb Raven数据库层次结构问题,ravendb,Ravendb,我已经通过了一些示例,但无法实现这一点: 最终目标是用连字符将父名称和子名称拆分在一起 我有一个索引: public class Category_Hierarchy : AbstractIndexCreationTask<CategoryDocument> { public Category_Hierarchy() { Map = categories => from cat in categories from par

我已经通过了一些示例,但无法实现这一点:

最终目标是用连字符将父名称和子名称拆分在一起

我有一个索引:

public class Category_Hierarchy : AbstractIndexCreationTask<CategoryDocument>
{
    public Category_Hierarchy()
    {
        Map = categories => from cat in categories
            from parent in Recurse(cat, c => LoadDocument<CategoryDocument>("CategoryDocuments/" + c.ParentId))
            select new
            {
                Id = cat.Id,
                Name = string.Format("{0} - {1}", cat.Name, parent.Name)
            };
    }
}
我是这样质疑的:

 List<Category_Hierarchy> cats = session.Query<Category_Hierarchy>().ToList();

我当前存储父Id,因此将文档名“CategoryDoctions/”附加到LoadDocument中,但不确定这是否是正确的方法。

您想做什么?索引中的LoadDocument很昂贵,在许多情况下都可以避免。看起来这里存在循环递归的潜在风险。因为父类别和子类别似乎属于同一类型,并且由parentId链接。因此,您可以让文档A成为文档B的父级,而文档B则是文档A的父级。不确定拥有CategoryParentDocument和CategoryChildDocument并加入它们是否更好?看着Ayende看这个。。。