C# 如何在整个查询中使用union all和innerjoin将linq写入实体查询

C# 如何在整个查询中使用union all和innerjoin将linq写入实体查询,c#,sql-server-2008-r2,linq-to-entities,C#,Sql Server 2008 R2,Linq To Entities,我正在尝试将此SQL查询转换为linq to entities,但我不知道如何转换使用G As的查询和使用G执行内部联接的查询2: WITH G AS ( -- DONE SELECT rt1.*, CAST(rt1.ACCOUNT_ID AS VARCHAR(MAX)) COLLATE Latin1_General_BIN AS PARENT_PATH, CAST(rt1.NUMBER AS

我正在尝试将此SQL查询转换为linq to entities,但我不知道如何转换使用G As的查询和使用G执行内部联接的查询2:

WITH G AS (

    -- DONE
        SELECT  
            rt1.*,
            CAST(rt1.ACCOUNT_ID AS VARCHAR(MAX)) COLLATE Latin1_General_BIN AS PARENT_PATH,
            CAST(rt1.NUMBER AS VARCHAR(MAX)) COLLATE Latin1_General_BIN AS NUMBER_PATH,
            rt1.NUMBER AS PARENT_NUMBER,
            0 AS DEPTH
        FROM    
            ACCOUNT rt1
        WHERE   
            rt1.PARENT_ID IS NULL 
            AND rt1.ACCOUNT_ID <> '00000000-0000-0000-0000-000000000000'
            AND rt1.STATEMENT_ID = '622f1e99-737c-4a77-be72-eacdec32203e'
    -- DONE
    -- in progress
        UNION ALL
        SELECT  
            rt2.*,
            G.PARENT_PATH + '/' + CAST(rt2.ACCOUNT_ID AS VARCHAR(MAX)) COLLATE Latin1_General_BIN,
            G.NUMBER_PATH + '/' + CAST(rt2.NUMBER AS VARCHAR(MAX)) COLLATE Latin1_General_BIN,
            G.NUMBER AS PARENT_NUMBER,
            G.DEPTH + 1
        FROM    
            ACCOUNT rt2
            INNER JOIN G
                ON rt2.PARENT_ID = G.ACCOUNT_ID
        WHERE   
            rt2.ACCOUNT_ID <> '00000000-0000-0000-0000-000000000000'
            AND rt2.STATEMENT_ID = '622f1e99-737c-4a77-be72-eacdec32203e'
            -- in progress
    )
您是否有一个参考的想法来解释如何编写适当的linq到实体查询

最好的

尼科