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看这个。。。