У меня есть этот фрагмент кода, я боролся с ним часами. в основном, этот оператор sql получает ВСЕ подпапки указанной папки (@compositeId).
WITH auto_table (id, Name, ParentID) AS
(
SELECT
C.ID, C.Name, C.ParentID
FROM Composite_Table AS C
WHERE C.ID = @compositeId
UNION ALL
SELECT
C.ID, C.Name, C.ParentID
FROM Composite_Table AS C
INNER JOIN auto_table AS a_t ON C.ParentID = a_t.ID
)
SELECT * FROM auto_table
Этот запрос вернет что-то вроде этого:
Id | Name | ParentId
1 | StartFolder| NULL
2 | Folder2 | 1
4 | Folder3 | 1
5 | Folder4 | 4
Теперь я хочу преобразовать код в linq. Я знаю, что это связано с некоторой формой рекурсии, но все же застрял благодаря оператору with.