文章内容

2017/11/30 9:40:15,作 者: 黄兵

Linq to sql查询(单表、多表查询)

关于数据库的查询中经常需要用到多表的连接查询,这里就简单地展示关于linq的查询功能。

1、单表的查询

  1. var query = from tc in db.tbClass  
  2.          where tc.ClassID == "1"  
  3.             //查询表tbClass  
  4.         select new {  
  5.         ClassID=tc.ClassID,  
  6.         ClassName=tc.ClassName  
  7.             }  

2、多表内连接查询

  1. var query = from s in db.tbStudents  
  2.                             join c in db.tbClass on s.ClassID equals c.ClassID  
  3.                             where s.ClassID == 3  
  4.                             select new  
  5.                             {  
  6.                                 ClassID = s.ClassID,  
  7.                                 ClassName = c.ClassName,  
  8.                                 Student = new  
  9.                                 {  
  10.                                     Name = s.Name,  
  11.                                     StudentID = s.StudentID  
  12.                                 }  
  13.                             };  

内连接与SqL中inner join一样,即找出两个序列的交集。

3、外连接

  1. var query = from s in db.tbStudents  
  2.                             join c in db.tbClass on s.ClassID equals c.ClassID into tbC  
  3.                             from tbCw in tbC.DefaultIfEmpty()  
  4.                             where s.ClassID == 3  
  5.                             select new  
  6.                             {  
  7.                                 ClassID = s.ClassID,  
  8.                                 ClassName = tbCw.ClassName,  
  9.                                 Student = new  
  10.                                 {  
  11.                                     Name = s.Name,  
  12.                                     StudentID = s.StudentID  
  13.                                 }  
  14.                             };  

注意点在与外连接的时候 from外接表的时候需要进行into到新的变量中,然后进行调用DefaultIfEmpty()方法。

分享到:

发表评论

评论列表