什么是LINQ?LINQ是Language Integrated Query的簡稱,它是集成在.NET編程語言中的一種特性。已成為編程語言的一個(gè)組成部分,在編寫程序時(shí)可以得到很好的編譯時(shí)語法檢查,豐富的元數(shù)據(jù),智能感知、靜態(tài)類型等強(qiáng)類型語言的好處。并且它同時(shí)還使得查詢可以方便地對(duì)內(nèi)存中的信息進(jìn)行查詢而不僅僅只是外部數(shù)據(jù)源。
LINQ 查詢:
說明:和SQL命令中的select作用相似但位置不同,查詢表達(dá)式中的select及所接子句是放在表達(dá)式最后并把子句中的變量也就是結(jié)果返回回來;延遲。
Select/Distinct操作包括9種形式,分別為簡單用法、匿名類型形式、條件形式、指定類型形式、篩選形式、整形類型形式、嵌套類型形式、本地方法調(diào)用形式、Distinct形式。
簡單形式
這個(gè)示例返回僅含客戶聯(lián)系人姓名的序列。
var q = from c in db.Customers select c.ContactName;
注意:這個(gè)語句只是一個(gè)聲明或者一個(gè)描述,并沒有真正把數(shù)據(jù)取出來,只有當(dāng)你需要該數(shù)據(jù)的時(shí)候,它才會(huì)執(zhí)行這個(gè)語句,這就是延遲加載(deferred loading)。如果,在聲明的時(shí)候就返回的結(jié)果集是對(duì)象的集合。你可以使用ToList() 或ToArray()方法把查詢結(jié)果先進(jìn)行保存,然后再對(duì)這個(gè)集合進(jìn)行查詢。當(dāng)然延遲加載(deferred loading)可以像拼接SQL語句那樣拼接查詢語法,再執(zhí)行它。