Если я хранятся документы, которые выглядят так:В RavenDB, как запросить вложенные «объекты» в документе?
Category {
public string Id {get;set;}
public List<Category> Categories {get;set;}
...
}
По существу категория, с подкатегорий. В моем случае, только 2 уровня глубины (1 родительский, n подкатегорий).
Querying for all categories отлично работает, показывая хороший список (с вложенными списками подкатегорий). Мои пользователи могут выбирать только подкатегорию, чтобы просматривать объекты в выбранной категории. Я хочу вытащить 1 из подкатегорий, как Category
.
Учитывая идентификатор подкатегории, как бы я вытащил одну из подкатегорий из своего автономного Category
?
Update
Я хотел бы добавить, я получаю вокруг этого, делая это:
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 может хватить.
Update 2
Все идентификаторы в этих категориях добавляются вручную, без каких-либо RavenDB Auto ID (даже суб-категории имеют Id).
Просьба уточнить: вы хотите получить Категорию с идентификатором подкатегории? –