如果我存储了如下所示的文档:
Category {
public string Id {get;set;}
public List<Category> Categories {get;set;}
...
}
本质上是一个类别,带有子类别。就我而言,只有 2 个级别(1 个父级,n 个子类别)。
查询所有类别效果很好,显示了一个不错的列表(也有嵌套的子类别列表)。我的用户只能单击一个子类别来查看所选类别中的内容。我想拉出 1 个子类别,作为Category
.
给定一个子类别 ID,我将如何将其中一个子类别拉出来,因为它是独立的Category
?
更新
我想补充一下,我通过这样做来解决这个问题:
Category pCat = RavenSession.Query<Category>().Where(x => x.Categories.Any(c => c.Id == id)).FirstOrDefault();
Category cat = pCat.Categories.Where(x => x.Id == id).FirstOrDefault();
首先获取包含子类别的类别,然后查询该类别上的子类别以拉取特定的子类别。
也许这更好,我不知道......但似乎它正在执行 2 个步骤,而 1 就足够了。
更新 2
这些类别中的所有 id 都是手动添加的,没有 RavenDB 自动 id(即使是子类别也有一个 Id)。