好的,所以我一直试图弄清楚如何嵌入多个选择 在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'))
我已经google了一下,但我得到的内容太复杂,无法跟进多个嵌入式 查询。
答案 0 :(得分:5)
此处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'