реализация рекурсивного linq - PullRequest
1 голос
/ 07 марта 2012

Итак, допустим, что у меня есть таблица с отношением к себе, например

Table Page
-------------
IDPage 
description    
IDPage_FK <-- foreign key 

Теперь эта таблица отображается с помощью структуры сущностей, такой как

Class Page
-----------
int IDPage
string description
int IDPage_FK
Page Page1
IColletion<Page> Page2

Что я хочудля архивации, если это возможно, было создано выражение linq для навигации по всей таблице и создания вывода, подобного этому, в строковой переменной:

Принимая эти значения в таблице

IDPage    Description    IDPage_FK

1         Example        null

2         Example2         1

3         Example3         2

Thisвывод на строковую переменную

string inheritance = (from P in Page Select....)

Вывод будет выглядеть так

Example > Example2 > Example3

Возможно?или мне нужно создать метод для зацикливания каждого элемента на создание переменной?

Ответы [ 3 ]

1 голос
/ 07 марта 2012

Рассматривали ли вы модель вложенного набора , а не родительский указатель для отображения иерархических отношений в таблице базы данных?

(Конечно, это не ответ, но может помочь вамлучшая дорога в долгосрочной перспективе)

1 голос
/ 07 марта 2012

Извините, вы не можете сделать рекурсивный Linq для базы данных - вам, вероятно, придется либо написать итеративную функцию, либо создать хранимую процедуру, чтобы сделать это для вас.

Аналогичный вопрос:

Как Entity Framework работает с рекурсивными иерархиями? Включить (), кажется, не работает с ним

0 голосов
/ 07 марта 2012

Если вы добавите свойство корневого узла в вашу модель, вы можете запросить два уровня: корневые узлы, все их дочерние элементы по идентификатору корневого узла.Затем вы можете выполнить поиск по экземплярам в памяти, чтобы создать вашу строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...