文章目錄
- (1)一對多關聯性
- (2)多對多關係
- (3)自串連關係
本篇將介紹Join操作符的使用,Join操作符類似於SQL命令中的join關鍵字,都是用於進行表串連操作的,實現多個表之間的查詢處理,當然此處的多表也包含自身與自身的串連。
Join操作符的使用包括三類,分別為Join(Join查詢),SelectMany(Select一對多選擇)和GroupJoin(分組Join查詢)。
1、SelectMany
SelectMany查詢需要滿足兩個條件,1、查詢語句中沒有Join和into關鍵字,2、必須出現EntitySet。在表關係中包括一對一、一對多、多對多關係。
(1)一對多關聯性
一對多的關係可以理解成一個A對應多個B,例如一個班級對應多個學生。
var query = from class in db.Classes from stu in class.Students where class.Grade == 5 select stu;
上述語句描述Grade值等於5的班級的所有學生。在查詢過程中,Students以EntitySet的形式出現在Classes類中。
(2)多對多關係
多對多的關係可以理解成一個A對應多個B,同時一個B又對應多個A。例如學生與課程之間的關係,一個學生可以選擇多門課程,一門課程可以被多個學生選擇。對應於多對多的關係,一般使用三張表來描述,兩張實體表,一張關係表。
var query = from s in db.Students from ss in s.StudentCources where s.Age == 20 select new { s.FirstName, s.LastName, ss.Cources.Cource.Name };
上述語句描述年齡為20歲的學生選擇的課程名稱和學生姓名。
(3)自串連關係
自串連關係描述的就是自己與自己進行串連,根據某個相同資訊進行篩選。例如:
var query = from s1 in db.Students from s2 in db.Students where s1.Age == s2.Age select new { FirstName1=s1.FirstName, LastName1 = s1.LastName, FirstName2=s2.FirstName, LastName2 = s2.LastName, s1.Age };
上述語句描述了選擇同齡學生,並顯示他們的姓名和年齡。
總結:
本篇僅介紹了SelectMany形式的Join使用,並通過舉例講述了SelectMany中的三種不同表現形式。下篇將對GroupJoin形式進行介紹。