Linq to SQL 的连表查询(转)
Posted 逆流成河
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linq to SQL 的连表查询(转)相关的知识,希望对你有一定的参考价值。
关于数据库的查询中经常需要用到多表的连接查询,这里就简单地展示关于linq的查询功能。 1、单表的查询 [csharp] view plain copy var query = from tc in db.tbClass where tc.ClassID == "1" //查询表tbClass select new { ClassID=tc.ClassID, ClassName=tc.ClassName } 2、多表内连接查询 [csharp] view plain copy var query = from s in db.tbStudents join c in db.tbClass on s.ClassID equals c.ClassID where s.ClassID == 3 select new { ClassID = s.ClassID, ClassName = c.ClassName, Student = new { Name = s.Name, StudentID = s.StudentID } }; 内连接与SqL中inner join一样,即找出两个序列的交集。 3、外连接 [csharp] view plain copy var query = from s in db.tbStudents join c in db.tbClass on s.ClassID equals c.ClassID into tbC from tbCw in tbC.DefaultIfEmpty() where s.ClassID == 3 select new { ClassID = s.ClassID, ClassName = tbCw.ClassName, Student = new { Name = s.Name, StudentID = s.StudentID } }; 注意点在与外连接的时候 from外接表的时候需要进行into到新的变量中,然后进行调用DefaultIfEmpty()方法。
以上是关于Linq to SQL 的连表查询(转)的主要内容,如果未能解决你的问题,请参考以下文章
全国排名的问题(linq 的连表查询 等同于sql的left join)