如何使用LINQ的Join语法连接三张数据表?求正确实现方案
使用LINQ Join语法连接三张数据表
没问题!用LINQ的join语法连接三张表其实和连两张表的思路一致,只要依次链式连接就好。我给你调整成标准的join写法,同时保留字段选择的逻辑:
using(Dataclasscontext DbContext = new Dataclasscontext()) { var result = (from t1 in DbContext.tbl1 join t2 in DbContext.tbl2 on t1.id1 equals t2.id1 join t3 in DbContext.tbl3 on t2.id2 equals t3.id2 select new { t1.id1, t1.name, t2.class, t2.std, t3.xxx // 这里替换成你需要从tbl3获取的具体字段 }).ToArray(); }
简单说明:
- 首先通过
join将tbl1与tbl2用id1关联,得到包含两张表数据的中间集合 - 接着再用一个
join将这个中间集合与tbl3通过id2关联 - 最后在
select里按需选取你需要的字段即可
这种写法比嵌套from+where的方式更直观,和SQL中的多表连接逻辑完全对应,可读性也更强。
内容的提问来源于stack exchange,提问作者Minhaj Patel
相关产品推荐
相关产品推荐

