问题将以下SQL转换为LINQ

Lou*_*caj 1 c# sql linq asp.net-mvc

好的,所以我一直试图弄清楚如何在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'))
Run Code Online (Sandbox Code Playgroud)

我已经google了一下,但我得到的内容太复杂,无法跟进多个嵌入式查询.

p.s*_*w.g 5

一个SQL连接似乎要简单得多这里.假设您已正确设置导航属性,那将看起来像这样:

from a in db.TableA
where a.TableB.TableC.C_Number == "10001"
select a;
Run Code Online (Sandbox Code Playgroud)

或者用流利的语法:

db.TableA.Where(a => a.TableB.TableC.C_Number == "10001")
Run Code Online (Sandbox Code Playgroud)

相应的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'
Run Code Online (Sandbox Code Playgroud)