從語言方面的進(jìn)化
–
委托
–
匿名方法
–
Lambda表達(dá)式
–
Linq查詢表達(dá)式
上邊這四個我會在下邊一一解說
從時間方面的演進(jìn)
–2004年
–2005年9月,C#2.0的PDC上發(fā)布
–2005年11月,C#2.0預(yù)覽版
–2006年1月,VB8.0預(yù)覽版
–2007年11月,.net 3.5發(fā)布
LINQ是語言級集成查詢(Language INtegrated Query)
LINQ是一種用來進(jìn)行數(shù)據(jù)訪問的編程模型,使得.NET語言可以直接支持?jǐn)?shù)據(jù)查詢
LINQ的目標(biāo)是降低訪問數(shù)據(jù)的復(fù)雜度
LINQ可以用統(tǒng)一的方法訪問不同類型的數(shù)據(jù),可以將數(shù)據(jù)作為對象使用
能夠更好地與編程模型集成
可以在Visual Studio中進(jìn)行智能提示
動態(tài)編程
LinQ目的
面向?qū)ο蠹夹g(shù)誕生以來并沒有解決降低訪問和整合信息數(shù)據(jù)的復(fù)雜度的問題。其中兩個最主要訪問的數(shù)據(jù)源與數(shù)據(jù)庫和 XML 相關(guān)。
LINQ正如它的名字“集成查詢語言”的含義一樣,它提供給程序員一個統(tǒng)一的編程界面。程序員不需要關(guān)心他將要操作的將是關(guān)系數(shù)據(jù)庫還是XML,甚至是遠(yuǎn)程的對象,它都采用同樣的查詢方式。就如同通過T-SQL操縱數(shù)據(jù)庫一樣,不管是Oracle,SyBase還是SQL Server,他們的Select語法都是一樣的。
有了LINQ,程序員便可以不再沉泥于不同的數(shù)據(jù)訪問技術(shù)的學(xué)習(xí)。不管編程語言如何發(fā)展,還是數(shù)據(jù)庫技術(shù)的發(fā)展,都不再需要程序員進(jìn)行學(xué)習(xí),數(shù)據(jù)存儲的效率由數(shù)據(jù)庫廠商進(jìn)行優(yōu)化,靈活的數(shù)據(jù)操作方法由數(shù)據(jù)訪問中間件廠商提供,程序員只需要編寫業(yè)務(wù)邏輯。
LINQ包括:
–LINQ to Objects 用于對象的查詢
–LINQ to XML 對XML數(shù)據(jù)的查詢
–LINQ to ADO.NET 對數(shù)據(jù)庫的查詢
LINQ to DataSets 數(shù)據(jù)集
LINQ to Entities ORM對象
LINQ to SQL 簡易ORM框架
命名空間在System.Linq
實(shí)現(xiàn) IEnumerable<T> 或 IQueryable<T> 接口的對象都可使用LINQ操作
LINQ框架圖
若要創(chuàng)建 Lambda 表達(dá)式,必須在 Lambda 運(yùn)算符 => 左側(cè)指定輸入?yún)?shù)(如果有),然后在另一側(cè)輸入表達(dá)式或語句塊。 例如,lambda 表達(dá)式 x => x * x 指定名為 x 的參數(shù)并返回 x 的平方。
獲取數(shù)據(jù)源。
創(chuàng)建查詢。
執(zhí)行查詢。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
