EntityFramework4で動的SQLクエリを実行しようとしています
クエリを文字列として作成しました。次のようになります。
SELECT
NodeID
,RowID
,[Comment]
,[Subject]
,[Text]
FROM
(SELECT
nr.Node_ID as NodeID
,nr.ID as RowID
,f.Name
,d.Value
FROM NoteNode.dbo.[NodeRows] AS nr
LEFT JOIN NoteNode.dbo.[NodeData] AS d ON nr.ID = d.NodeRow_ID
LEFT JOIN NoteNode.dbo.[NodeFields] AS f ON f.ID = d.Field_ID
WHERE nr.Node_ID = (1) ) AS x
PIVOT
(
MAX(Value)
for Name IN ([Comment],[Subject],[Text])
) AS p
このコードをMSSQLStudioで直接実行すると、問題はまったく発生しません。ただし、これを使用してエンティティフレームワークを使用してこれを実行しようとすると、次のようになります。
var DataRecords = new ObjectQuery<DbDataRecord>(dataQuery, (ObjectContext) _db.ObjectContext());
それは機能せず、次のエラーが発生します。
{"クエリ構文が無効です。識別子'PIVOT'の近く、17行31列目。"}
構文を少しいじって、すべての改行とタブをクリアしようとしましたが、このエラーが繰り返し発生します。
何か案は?
参考までに:これをLINQ / LAMBDAに変換する方法、またはこれをまったく異なる方法で行う必要があるかどうかについての提案を受け付けています。