13
Tôi có thể tìm thấy tất cả trẻ em của một bản ghi đã cho trong mô hình dữ liệu phân cấp (xem mã bên dưới) nhưng tôi không chắc chắn cách thức sao lưu chuỗi phụ huynh/con với một ID con nhất định. Bất cứ ai có thể chỉ cho tôi đi đúng hướng để tìm ra cách để làm điều này? Điều này có thể trong LINQ to SQL không?CTE để duyệt qua sao lưu hệ thống phân cấp?
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]
Cảm ơn đã gửi bài giải pháp của bạn! Nó đã tiết kiệm cho tôi giờ! –