У меня есть таблица категорий «Категория» [ID, заголовок] и таблица «Родитель / ребенок» «CategoryParent» [ID, CategoryID, ParentCategoryID], где дерево «многие ко многим» представлено родителем указанной категориииспользуя поле ParentCategoryID в таблице соединений.
Я подумал, что это будет простая структура, используемая для извлечения корневых категорий (записей категорий, которые имеют NULL в качестве значения ParentCategoryID в таблице соединений) и дочерних категорий (по родителямid.)
Однако ни одна из моих попыток написать оператор LINQ2SQL для получения списка объектов Category по их родительскому идентификатору в таблице соединения не привела к созданию чего-либо скомпилированного.
Я бы опубликовал несколькокод, но ни один из них не является (а) полным или (б) осмысленным - в любых терминах вообще.
Как это можно сделать?
Моя таблица соединений выглядит следующим образом:
CategoryParent
---
ParentCategoryID [int] (PK)
CategoryID [int] FK
CategoryParentID [int] FK
Моя таблица данных (категорий) выглядит следующим образом:
Category
---
CategoryID [int] PK
Title [nvarchar]
Существует две взаимосвязи:
Category.CategoryID 1->* CategoryParent.CategoryID
Category.CategoryID 1->* CategoryParent.ParentCategoryID
Я хотел бы предоставитьлибо NULL, либо CategoryID и получить обратно все строки таблицы Category, для которых он является родительским.