问题将以下SQL转换为LINQ

时间:2014-05-14 14:52:21

标签: c# sql asp.net-mvc linq

好的,所以我一直试图弄清楚如何嵌入多个选择 在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了一下,但我得到的内容太复杂,无法跟进多个嵌入式 查询。

1 个答案:

答案 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'