資源描述:
《Linq to sql server 基本語法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Linqtosqlserver基本語法Where操作適用場景:實現(xiàn)過濾,查詢等功能。說明:與SQL命令中的Where作用相似,都是起到范圍限定也就是過濾作用的,而判斷條件就是它后面所接的子句。Where操作包括3種形式,分別為簡單形式、關(guān)系條件形式、First()形式。下面分別用實例舉例下:1.簡單形式:例如:使用where篩選在倫敦的客戶varq=fromcindb.Customerswherec.City=="London"selectc;再如:篩選1994年或之后雇用的雇員:varq=fromeindb.Employeeswheree.HireDate>=newDateT
2、ime(1994,1,1)selecte;2.關(guān)系條件形式:篩選庫存量在訂貨點水平之下但未斷貨的產(chǎn)品:varq=frompindb.Productswherep.UnitsInStock<=p.ReorderLevel&&!p.Discontinuedselectp;篩選出UnitPrice大于10或已停產(chǎn)的產(chǎn)品:varq=43frompindb.Productswherep.UnitPrice>10m
3、
4、p.Discontinuedselectp;下面這個例子是調(diào)用兩次where以篩選出UnitPrice大于10且已停產(chǎn)的產(chǎn)品。varq=db.Products.Where(p
5、=>p.UnitPrice>10m).Where(p=>p.Discontinued);3.First()形式:返回集合中的一個元素,其實質(zhì)就是在SQL語句中加TOP(1)。簡單用法:選擇表中的第一個發(fā)貨方。Shippershipper=db.Shippers.First();元素:選擇CustomerID為“BONAP”的單個客戶Customercust=db.Customers.First(c=>c.CustomerID=="BONAP");條件:選擇運費大于10.00的訂單:Orderord=db.Orders.First(o=>o.Freight>10.00M);???
6、?Select/Distinct操作符適用場景:o(∩_∩)o…查詢唄。說明:和SQL命令中的select作用相似但位置不同,查詢表達(dá)式中的select及所接子句是放在表達(dá)式最后并把子句中的變量也就是結(jié)果返回回來;延遲。Select/Distinct操作包括9種形式,分別為簡單用法、匿名類型形式、條件形式、指定類型形式、篩選形式、整形類型形式、嵌套類型形式、本地方法調(diào)用形式、Distinct形式。1.簡單用法:這個示例返回僅含客戶聯(lián)系人姓名的序列。43varq=fromcindb.Customersselectc.ContactName;注意:這個語句只是一個聲明或者一個描述,
7、并沒有真正把數(shù)據(jù)取出來,只有當(dāng)你需要該數(shù)據(jù)的時候,它才會執(zhí)行這個語句,這就是延遲加載(deferredloading)。如果,在聲明的時候就返回的結(jié)果集是對象的集合。你可以使用ToList()或ToArray()方法把查詢結(jié)果先進(jìn)行保存,然后再對這個集合進(jìn)行查詢。當(dāng)然延遲加載(deferredloading)可以像拼接SQL語句那樣拼接查詢語法,再執(zhí)行它。2.匿名類型形式:說明:匿名類型是C#3.0中新特性。其實質(zhì)是編譯器根據(jù)我們自定義自動產(chǎn)生一個匿名的類來幫助我們實現(xiàn)臨時變量的儲存。匿名類型還依賴于另外一個特性:支持根據(jù)property來創(chuàng)建對象。比如,vard=new{Na
8、me="s"};編譯器自動產(chǎn)生一個有property叫做Name的匿名類,然后按這個類型分配內(nèi)存,并初始化對象。但是vard=new{"s"};是編譯不通過的。因為,編譯器不知道匿名類中的property的名字。例如stringc="d";vard=new{c};則是可以通過編譯的。編譯器會創(chuàng)建一個叫做匿名類帶有叫c的property。例如下例:new{c,ContactName,c.Phone};ContactName和Phone都是在映射文件中定義與表中字段相對應(yīng)的property。編譯器讀取數(shù)據(jù)并創(chuàng)建對象時,會創(chuàng)建一個匿名類,這個類有兩個屬性,為ContactName和P
9、hone,然后根據(jù)數(shù)據(jù)初始化對象。另外編譯器還可以重命名property的名字。varq=fromcindb.Customersselectnew{c.ContactName,c.Phone};上面語句描述:使用SELECT和匿名類型返回僅含客戶聯(lián)系人姓名和電話號碼的序列varq=fromeindb.Employeesselectnew{Name=e.FirstName+""+e.LastName,Phone=e.HomePhone};上面語句描述:使用SELECT和匿名類型返回僅含雇員姓名