好的,所以我一直在努力弄清楚如何嵌入多个选择 在 LINQ 查询中失败,因为我不经常使用 LINQ。
我想出了一个相当直接的简单 SQL 语句,我正在尝试转换,如果有人可以帮助将其转换为 LINQ 并解释其中的逻辑,我将不胜感激。
SELECT * FROM TABLE_A
WHERE TABLE_B_REF IN
(SELECT TABLE_B_REF FROM TABLE_B
WHERE TABLE_B.TABLE_C_REF IN
(SELECT TABLE_C_REF FROM TABLE_C WHERE C_NUMBER = '10001'))
我已经用谷歌搜索了,但是我得到的东西太复杂了,无法遵循多个嵌入式 查询。
最佳答案
A SQL join这里看起来简单多了。假设您已经设置了 navigation properties正确地,这看起来有点像这样:
from a in db.TableA
where a.TableB.TableC.C_Number == "10001"
select a;
或者用流利的语法:
db.TableA.Where(a => a.TableB.TableC.C_Number == "10001")
对应的 SQL 是这样的:
SELECT a.*
FROM TABLE_A a
JOIN TABLE_B b ON a.TABLE_B_REF = b.TABLE_B_REF
JOIN TABLE_C c ON b.TABLE_C_REF = c.TABLE_C_REF
WHERE c.C_NUMBER = '10001'
关于c# - 将以下 SQL 转换为 LINQ 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23658146/