Indexing RavenDB中的层次结构查询

Indexing RavenDB中的层次结构查询,indexing,ravendb,Indexing,Ravendb,我在RavenDB的单个文档中保存了一个类别层次结构 "CategoryList": [ { "$id": "1", "Id": "Admin", "Name": "Administration", "ParentCategory": null, "Subcategories": [ { "$id": "2", "Id": "Admin1", "Name": "Administration 1", "ParentCate

我在RavenDB的单个文档中保存了一个类别层次结构

"CategoryList": [
{
  "$id": "1",
  "Id": "Admin",
  "Name": "Administration",
  "ParentCategory": null,
  "Subcategories": [
    {
      "$id": "2",
      "Id": "Admin1",
      "Name": "Administration 1",
      "ParentCategory": {
        "$ref": "1"
      },
      "Subcategories": []
    },...
我可以使用这两个类在C#中成功加载它

public class Categories
{
    public string Id { get; set; }
    public IEnumerable<Category> CategoryList{ get; set; }
}

[JsonObject(IsReference = true)]
public class Category
{
    private readonly IList<Category> _subcategories;

    public string Id { get; set; }
    public string Name { get; set; }
    public Category ParentCategory { get; set; }

    public IEnumerable<Category> Subcategories
    {
        get { return _subcategories; }
    }

    public Category()
    {
        _subcategories = new List<Category>();
    }

    public void AddSubcategory(Category subcategory)
    {
        subcategory.ParentCategory = this;
        _subcategories.Add(subcategory);
    }
}
执行此查询时,将返回所有类别:

var allCategories = session.Query<Categories, CategoriesByIdIndex>()
            .AsProjection<CategoriesByIdIndex.ReduceResult>()
            .ToList();
var allCategories=session.Query()
.AsProjection()
.ToList();
但当我尝试按类别Id进行筛选时,会收到一个空列表:

var singleCategory = session.Query<Categories, CategoriesByIdIndex>()
            .AsProjection<CategoriesByIdIndex.ReduceResult>()
            .Where(x => x.Id == "Admin1")
            .ToList();
var singleCategory=session.Query()
.AsProjection()
。其中(x=>x.Id==“Admin1”)
.ToList();
我做错了什么

谢谢

var singleCategory = session.Query<Categories, CategoriesByIdIndex>()
            .AsProjection<CategoriesByIdIndex.ReduceResult>()
            .Where(x => x.Id == "Admin1")
            .ToList();