SQL查询到LINQ转换

时间:2012-03-23 19:20:45

标签: sql-server linq entity-framework

我想将mySQL Server查询转换为LINQ。查询是:

DECLARE @Cols VARCHAR(MAX)
SELECT @cols = '[24/03/2012],[23/03/2012],[22/03/2012]'
DECLARE @query VARCHAR(MAX)
SET @query = N'SELECT *
FROM
(SELECT ''Total Processed'' as [Total Processed], CONVERT(VARCHAR,datestatuschanged,103) AS ''DATE'',applicationid
            FROM    dbo.vwProductivityRpt
            where status=''Open'') p
PIVOT
(
count(applicationid) FOR DATE IN
( '+
@cols +' )
) AS pvt' 

EXECUTE(@query)

1 个答案:

答案 0 :(得分:0)

LINQ要求所有列都是静态命名的。这意味着您需要使用反射来构造查询表达式,这是一种讨厌的工作类型。

在某种程度上,.NET中的反射与SQL中的字符串连接一样 - 您动态创建一个必须具有静态命名列的查询。

我认为你最好不要继续使用SQL来完成这项特殊任务。