Чтобы увидеть мою проблему в действии, посетите сайт www.apoads.com и наведите указатель мыши на пункт меню «Местные предприятия». Это серия вложенных неупорядоченных списков, сгенерированных из вызова db. Идем дальше и нажимаем на несколько элементов под «Местными предприятиями», вы увидите, что большинство категорий пустые (сайт очень новый).Запрос LINQ для создания пустого вложенного меню?
Задача: Я хочу показать категории, которые фактически содержат местный бизнес. Вот что моя категория схема выглядит следующим образом:
int BizCatID - PK,Identity (used in FK relation to the table named Biz)
int? ParentID - BizCatID of this rows parentID, null means no parent
nvarchar Name - name of the category
nvarchar Caption - quick description of the category
Что я пробовал: Я пытался обновить мой запрос LINQ следующим образом:
from c in db.BizCategories where c.ParentID != null && c.Bizs.Count() > 0 select c;
Это, очевидно, не будет работать, причина, по которой мне понадобится родительская категория, чтобы показать, содержит ли дочерняя категорию бизнес. Поэтому я пробовал это:
from c in db.BizCategories where c.Bizs.Count() > 0 select c;
Это также не работает, поскольку родительские категории никогда не будут иметь под собой никаких предприятий. Поэтому мне кажется, что мне нужно сделать какую-то обратную рекурсию, но я не уверен, как это сделать.
Или, может быть, я делаю все для себя, и мне нужно изменить схемы db?
Это уже класс, от LINQ до Sql. Полагаю, я мог бы добавить свойство «Дети» через добавление частичного класса. Ваше решение выглядит практичным, я расскажу о том, как это работает для меня. Спасибо! – Chaddeus
После того, как вы поехали, вы правы. Я был WAAAAY чрезмерно мыслящими вещами. Так просто, следовало бы это увидеть раньше. Спасибо! – Chaddeus