C#Linq连接的条件和条件
我正试图弄清楚如何在我的C#Linq连接的条件和条件,c#,sql,linq,linq-to-sql,ssms,C#,Sql,Linq,Linq To Sql,Ssms,我正试图弄清楚如何在我的Linq2SQL语句中包含和条件 因此,我的SQL在SSMS中看起来 SELECT TBL1.Field1, TBL2.Field2 FROM TABLE1 AS TBL1 INNER JOIN TABLE2 AS TBL2 ON TBL1.TBL2ID = TBL2.ID INNER JOIN TABLE3 AS TBL3 ON TBL1.TBL3ID = TBL3.ID AND TBL3.SQID = 20 WHERE TBL1.ID = 3 我的LINQ如下所示
Linq2SQL
语句中包含和条件
因此,我的SQL在SSMS中看起来
SELECT TBL1.Field1, TBL2.Field2 FROM TABLE1 AS TBL1
INNER JOIN TABLE2 AS TBL2 ON TBL1.TBL2ID = TBL2.ID
INNER JOIN TABLE3 AS TBL3 ON TBL1.TBL3ID = TBL3.ID AND TBL3.SQID = 20
WHERE TBL1.ID = 3
我的LINQ如下所示
var linq = (from tbl1 in Table1
join tbl2 in Table2 on tbl1.tabl2ID equals tbl2.ID
join tbl3 in Table3 on tbl1.tabl3ID equals tbl3.ID
where tbl1.ID = 3
select new { field1 = tbl1.field1, field2 = tbl2.field2
}).ToList();
那么,如何在tbl3
的第二次连接中使用和
?有什么建议吗?请加上where子句tbl3.SQID==20
var linq = (from tbl1 in Table1
join tbl2 in Table2 on tbl1.tabl2ID equals tbl2.ID
join tbl3 in Table3 on tbl1.tabl3ID equals tbl3.ID
where tbl1.ID == 3 && tbl3.SQID == 20
select new { field1 = tbl1.field1, field2 = tbl2.field2
}).ToList();
实际上,您可以使用表3中的join tbl3在new{TBLID=tbl1.tabl3ID,SQID=tbl3.SQID}等于new{TBLID=tbl3.ID,SQID=20}
上使用多个条件进行连接。在这种情况下,没有区别。是的,但是,where
子句和on
子句之间有区别。当然,我在本例中提到了它。正确,但首先OP询问的是和内部LINQ join
,其次,您不知道该示例是真实的项目示例,还是为了示例而编写的。