You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linq2SQL的Join语句中添加AND连接条件?

在Linq to SQL的JOIN中添加AND条件的方法

嗨,我来帮你搞定这个多条件JOIN的问题~

首先看你在SSMS里的SQL,和TABLE3的JOIN包含两个关联条件:

TBL1.TBL3ID = TBL3.ID AND TBL3.SQID = 20

在Linq to SQL里,没法像SQL那样直接在on后面加AND,不过我们可以用匿名类型把多个条件打包起来,让JOIN两边的匹配项完全对应。另外提醒你一下,你原来的Linq代码里有个小语法错误:where tbl1.ID = 3应该用等于运算符==,而不是赋值的=,这个要修正避免运行报错哦。

修正后的完整代码如下:

var linq = (from tbl1 in Table1
            join tbl2 in Table2 on tbl1.tabl2ID equals tbl2.ID
            // 用匿名类型封装两个JOIN条件,两边属性名和类型要一致
            join tbl3 in Table3 on new { tbl1.tabl3ID, SQID = 20 } equals new { tbl3.ID, tbl3.SQID }
            where tbl1.ID == 3
            select new 
            { 
                field1 = tbl1.field1, 
                field2 = tbl2.field2 
            }).ToList();

简单解释下原理

Linq会把匿名类型的每一个属性都作为JOIN的匹配条件,只要两边匿名类型的属性名称、数据类型完全对应,就会被转换为SQL里的AND关联条件,最终生成的SQL和你在SSMS里写的效果完全一致。

内容的提问来源于stack exchange,提问作者KJSR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:57:52