我正在尝试编写相当于的 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 对象 T1s 和 T2s。
在 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 代码中的第三行)时,查询运行良好。
我尝试将内部比较的顺序切换为 t.C24 = i.C17,但没有效果。
那么发生了什么,我该如何解决?