私はLINQに相当するものを書こうとしています
SELECT C1, C2, C3
FROM T1
WHERE T1.C4='xyz' AND
EXISTS (SELECT 1 FROM T2
WHERE T1.C17 = T2.C24)
ORDER BY C3
私は EF CTP 5 を使用しているので、dbc という名前の DBContext 変数があります。これには、POCO T1 および T2 に基づく DBSet オブジェクト T1 および T2 が含まれます。
LINQで私は書く
DIM IND = From i In dbc.T1s
Where i.C4 = "xyz"
And (From t In dbc.T2s Where i.C17 = t.C24).Any
Select i.C1, i.C2, i.C3
Order By C3
クエリを実行すると、「'T2' 型の定数値を作成できません。このコンテキストではプリミティブ型 ('Int32、String、および Guid' など) のみがサポートされています。」というエラー メッセージが表示されます。
内部式 (LINQ コードの 3 行目) を省略すると、クエリは正常に実行されます。
内部比較の順序を t.C24 = i.C17 に切り替えてみましたが、効果はありませんでした。
では、何が起こっているのでしょうか。どうすれば修正できますか?