1. 程式人生 > >Linq to SQL 的連表查詢(轉)

Linq to SQL 的連表查詢(轉)

equal query 交集 數據庫 調用 數據 變量 bst log

關於數據庫的查詢中經常需要用到多表的連接查詢,這裏就簡單地展示關於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 的連表查詢(轉)