ADO Entity иерархическая ссылка на себя - PullRequest
2 голосов
/ 05 августа 2009

У меня есть собственная таблица ссылок с категориями, в которой есть столбец parentcategoryid, который можно обнулять.

Когда я добавил таблицу в конструктор сущностей, она создала два свойства навигации для этого отношения, и я назвал одну ParentCategory (нулевую или 1 навигационную опору), а другую я назвал SubCategories (* много навигационных реквизитов).

Все отлично работает, за исключением того, что когда я прохожу более одного уровня, он не поднимает более глубокие уровни.

Итак, я получаю все Category.SubCategories, но я не получаю категории в подкатегориях.

Я что-то упустил? начинаю думать, что я должен был придерживаться NHibernate. Разве глубокие уровни не должны загружаться лениво?

    return from c in _entities.ContentCategorySet.Include("SubCategories")       
           where c.ParentCategory == null
           orderby c.Importance, c.Title
           select c;

Ответы [ 3 ]

1 голос
/ 05 августа 2009

ОК, по крайней мере, часть проблемы

where c.ParentCategory == null

Когда я удаляю это, я получаю более глубокие уровни, но затем имею подкатегории на верхнем уровне. Я думаю, я могу просто отфильтровать их по факту.

1 голос
/ 05 августа 2009

Вот как я мог бы представить себе свойство SubCategories для себя.

Уровень 1

++ Уровень 2

++ Уровень 2

++ ++ Уровень 3

Где свойство SubCategories уровня 1 возвращает только элементы уровня 2. Затем, чтобы попасть на уровень 3, вы должны получить доступ к последовательным элементам уровня 2 рекурсивным способом.

0 голосов
/ 17 ноября 2010
...