Linq to SQL에서 공통 테이블 표현식 (CTE) (아래 참조)을 수행 할 수 있습니까? 나는 SQL에 Linq뿐만 아니라 CTE의 새로운 기능을 잘 알고있다.linq-to-sql의 공통 테이블 식 (CTE)?
저는 현재 Proc 무료로 저장되어 있습니다 (그러나 어떤 방식 으로든 반대하지 않습니다). 완전히 필요한 경우가 아니라면 하나의 쿼리에 대해 저장된 procs로 도약하지 않으려합니다.
가 여기에 내가 SQL에 Linq에의 할 수 있을지 궁금하네요 내가 SQL에서 뭘하는지의 예 :
WITH TaskHierarchy (TaskID, [Subject], ParentID, HierarchyLevel, HierarchyPath) AS
(
-- Base case
SELECT
TaskID,
[Subject],
ParentID,
1 as HierarchyLevel,
CONVERT(VARCHAR(MAX),'/') AS HierarchyPath
FROM Task
WHERE TaskID = 2
UNION ALL
-- Recursive step
SELECT
t.TaskID,
t.Subject,
t.ParentID,
th.HierarchyLevel + 1 AS HierarchyLevel,
CONVERT(varchar(MAX),th.HierarchyPath + CONVERT(VARCHAR(32),t.ParentID) + '/') AS HierarchyPath
FROM Task t
INNER JOIN TaskHierarchy th ON
t.ParentID = th.TaskID
)
SELECT *
FROM TaskHierarchy
ORDER BY HierarchyLevel, [Subject]