我想将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)
答案 0 :(得分:0)
LINQ要求所有列都是静态命名的。这意味着您需要使用反射来构造查询表达式,这是一种讨厌的工作类型。
在某种程度上,.NET中的反射与SQL中的字符串连接一样 - 您动态创建一个必须具有静态命名列的查询。
我认为你最好不要继续使用SQL来完成这项特殊任务。