0

CTE を使用して記述した SQL クエリがあります。現在、Entity Framework 5 を使用するようにリポジトリを移動しています。

Entity Framework 5 を使用して CTE ベースのクエリを統合 (または書き換え) する方法がわかりません。

私は EF5 で POCO エンティティを使用しており、多数の Map クラスがあります。EDMXファイル等はありません。

私は今、完全な初心者のように感じており、正しい方向に私を向ける助けをいただければ幸いです.

CTEクエリは次のとおりです

WITH CDE AS
(
    SELECT * FROM collaboration.Workspace AS W WHERE W.Id = @WorkspaceId
    UNION ALL
    SELECT W.* FROM collaboration.Workspace AS W INNER JOIN CDE ON W.ParentId = CDE.Id AND W.ParentId <> '00000000-0000-0000-0000-000000000000'
)
SELECT
    W.Id AS Id,
    W.Name AS Name,
    W.Description AS Description,
    MAX(WH.ActionedTimeUtc) AS LastUpdatedTimeUtc,
    WH.ActorId AS LastUpdateUserId
FROM
    collaboration.Workspace AS W
    INNER JOIN
    collaboration.WorkspaceHistory AS WH ON W.Id = WH.WorkspaceId
    INNER JOIN
    (
        SELECT TOP 10
            CDE.Id
        FROM
            CDE
            INNER JOIN
            collaboration.WorkspaceHistory AS WH ON WH.WorkspaceId = CDE.Id
        WHERE
            CDE.Id <> @WorkspaceId
        GROUP BY
            CDE.Id,
            CDE.ParentId,
            WH.ActorId,
            WH.Action
        HAVING
            WH.ActorId = @UserId
            AND
            WH.Action <> 4
        ORDER BY
            COUNT(*) DESC
    ) AS Q ON Q.Id = WH.WorkspaceId
GROUP BY
    W.Id,
    W.Name,
    W.Description,
    WH.ActorId
HAVING
    WH.ActorId = @UserId
4

2 に答える 2