下面我來我大家介紹幾種簡單的查詢方式。 1、簡單語法 下面是一段LINQ查詢語句 ============================================================================================= List<Select> list = (from tb in Model.SYS select new Select { id = tb.ID, text = tb.Name }).ToList(); ============================================================================================= 這個LINQ語句的第一個關(guān)鍵字是from,from后面加的是范圍變量,范圍變量后加in,后加上事先實(shí)例化的模型,然后點(diǎn)出數(shù)據(jù)的來源。 from后面的范圍變量類似于for循環(huán)中的i變量,這里不需要明確范圍變量指定具體的數(shù)據(jù)類型,因?yàn)榫幾g器在執(zhí)行這段代碼時(shí),可以根據(jù)里面的數(shù)據(jù)推斷出范圍變量的類型。 第二句先是關(guān)鍵字select查詢,后面加上new的關(guān)鍵字,后面再加上事先封裝好的要查詢數(shù)據(jù)的數(shù)據(jù)類型類,這個數(shù)據(jù)類型類必須與前面List列表的數(shù)據(jù)類型類相同。 在select查詢里面為事先封裝好的數(shù)據(jù)類型類里面的字段賦上相應(yīng)的值, List是列表,LINQ語句要與List相等,所以在查詢語句的最后面要加上一個ToList()將LINQ的隱式轉(zhuǎn)換成另外一種類型。 2、匿名類型 匿名類型,在查詢上不用去聲明指定具體的數(shù)據(jù)類型,可以在執(zhí)行代碼時(shí)由編譯器自動地去推斷變量的數(shù)據(jù)類型。 ============================================================================================= var list = from tb in Model.SYS select new Select { id = tb.ID, text = tb.Name }; ============================================================================================= var是匿名類型關(guān)鍵字,它用于定義數(shù)據(jù)類型的一種間接的方式 var關(guān)鍵字會動去判斷后面的變量具體的數(shù)據(jù)類型。 這個Linq語句的與上面一樣,第一個關(guān)鍵字是from,from后面加的是變量,變量后加in,后加上事先實(shí)例化的模型,然后點(diǎn)出數(shù)據(jù)的來源。 第二句也差不多,先是關(guān)鍵字select查詢,后面加上new的關(guān)鍵字,但這里不需要再加上事先封裝好的要查詢數(shù)據(jù)的數(shù)據(jù)類型類。 同樣的,在select查詢里面為字段賦值,但這里并沒有指定數(shù)據(jù)類型,所以也沒有指定字段。 最后,這里因?yàn)長ist沒有指定數(shù)據(jù)類型,所以不需要ToList()進(jìn)行轉(zhuǎn)換。 3、Lambda表達(dá)式 Lambda表達(dá)式相對于上面兩種寫法更加簡潔。 ============================================================================================= var list = Model.SYS .Select(m => new { id = m.ID, text = m.Name }); ============================================================================================= 先用var聲明一個變量,然后直接調(diào)用實(shí)例化的模型,點(diǎn)出數(shù)據(jù)的來源;緊接著后面直接調(diào)用一個查詢方法.Select()。 括號里面為表達(dá)式,m是參數(shù),這個參數(shù)名稱沒有指定為m,可以自行定義;=>是Lambda表達(dá)式的一個運(yùn)算符;同樣加上new的關(guān)鍵字;花括號里面為具體的一個方法體,填寫需要查詢的字段。 上面幾種方法,它們最后的效果都是同樣的。 來源:http://www./content-4-158701.html |
|