Sql server 将Linq中的T-SQL查询重新写入实体-C#

Sql server 将Linq中的T-SQL查询重新写入实体-C#,sql-server,entity-framework,c#-4.0,linq-to-entities,common-table-expression,Sql Server,Entity Framework,C# 4.0,Linq To Entities,Common Table Expression,任何知道这件事的人请帮忙 如何在Linq中将以下SQL存储过程重新写入实体 ALTER PROCEDURE [dbo].[SampleSP] AS BEGIN ;with CTE_MyData(Col1, Col2,Col3 ) AS ( SELECT DC.Name, DT.Name, RD.Col3 FROM MyData RD INNER JOIN FoodType DT ON RD.FoodId = DT.F

任何知道这件事的人请帮忙

如何在Linq中将以下SQL存储过程重新写入实体

ALTER PROCEDURE [dbo].[SampleSP]
AS BEGIN
        ;with CTE_MyData(Col1, Col2,Col3 ) AS
        (
            SELECT DC.Name, DT.Name, RD.Col3 FROM MyData RD
            INNER JOIN FoodType DT ON RD.FoodId = DT.FoodId
            INNER JOIN FoodCategory DC ON DT.FoodCategoryId = DC.FoodCategoryId
        )
        SELECT Col1,
                CASE
                    WHEN GROUPING(Col2) = '' THEN Col2
                    ELSE Col1
                END [Food Column],
            SUM(Col3) AS Col3
        FROM CTE_MyData
        GROUP BY Col1, Col2 WITH ROLLUP
        HAVING GROUPING(Col1) = 0

END

解决方法是创建匿名类型并从中查询结果。或者它是否有助于您在LINQ中检查这个公共表表达式?别这么想。坚持使用SP,除非你能首先摆脱CTE。