從年前一直在做一個項目,所有沒有時間來看書學習,最近終於有點空閑時間了,就想認真學習下在項目中用到的Linq to SQL。在做項目的過程中覺得Linq很是神奇,語法簡單、直觀,對於我這個SQL語句不是特別精通的菜鳥來說幫助甚大,所以就抽時間來好好學習學習Linq的精妙。
今天學習的內容是Where的使用,主要是通過例子來展示。
Linq中的Where與SQL命令中的Where很類似,都是起到了過濾的作用,Where后面緊接判定條件子句。
Where操作包括三種形式,分別為簡單形式、關系條件形式、First()形式。
一、簡單形式
我將簡單形式理解為單一條件的Where語句,即在條件子句中只是通過>、<、=、≠作為條件來過濾數據。
例如:使用Where篩選年齡大於20歲的學生
var query = from student in db.Students where student.Age > 20 select student;
或者:
var query = db.Students.Where(student=>student.Age > 20);
又或者篩選來自北京的學生
var query = from student in db.Students where student.City=="北京" select student;
或者:
var query = db.Students.Where(student=>student.City=="北京");
二、關系條件形式
關系條件形式與簡單形式的不同在於,它的條件子句中包含多個條件的並或交,即在簡單形式的基礎上加上&&、||。
例如:篩選來自北京且年齡大於20歲的學生
var query = from student in db.Students where student.Age > 20 && student.City=="北京" select student;
或者:
var query = db.Students.Where(student=>student.Age > 20 && student.City=="北京");
再如,篩選來自壯族或滿族的學生
var query = from student in db.Students where student.Nationality == "壯族" || student.Nationality == "滿族" select student;
或者:
var query = db.Students.Where(student=>student.Nationality == "壯族" || student.Nationality == "滿族");
大家可以很容易的區分簡單形式和關系條件形式的不同。
三、First()形式
First形式與前面兩種不同,它類似於在SQL命令中的Top(1)限定,即我們只返回集合中的第一個元素。
例如:選擇學生名單中的第一個學生
Student student = db.Students.First();
再如:選擇學號為1101021的學生
Student student = db.Students.First(student=>student.StuNo=="1101021");
使用First形式,可以用唯一值來作篩選條件以便確定出唯一需要的數據。
總結:
在使用Linq to SQL的過程中簡化了以前使用SQL的繁瑣書寫,使語句更加的簡單直觀。通過今天的Where學習,更加熟練了這方面的操作,也讓我更加喜歡神奇的Linq了。