•LINQ(發音:Link)是語言級集成查詢(Language INtegrated Query) •LINQ是一種用來進行數據訪問的編程模型,使得.NET語言可以直接支持數據查詢 •LINQ的目標是降低訪問數據的複雜度 •LINQ可以用統一的方法訪問不同類型的數據,可以將數據作為對象使用 •能夠更 ...
•LINQ(發音:Link)是語言級集成查詢(Language INtegrated Query)
•LINQ是一種用來進行數據訪問的編程模型,使得.NET語言可以直接支持數據查詢 •LINQ的目標是降低訪問數據的複雜度 •LINQ可以用統一的方法訪問不同類型的數據,可以將數據作為對象使用 •能夠更好地與編程模型集成 •可以在Visual Studio中進行智能提示 •動態編程 LINQ的歷史: •從語言方面的進化 –委托 –匿名方法 –Lambda表達式 –Linq查詢表達式 •從時間方面的演進 –2004年 –2005年9月,C#2.0的PDC上發佈 –2005年11月,C#2.0預覽版 –2006年1月,VB8.0預覽版 –2007年11月,.net 3.5發佈 LINQ基礎: •語言集成查詢 (LINQ) 允許開發人員通過強類型化語法使用.NET Framework 3.5 代碼編寫類似SQL 的查詢。 •LINQ 查詢還具有一個標準查詢操作符庫來增強其功能。這些標準查詢操作符對序列進行運算並可執行各種運算,如確定序列中是否存在某個值以及對序列運行合計函數(如求和) •LINQ包括: –LINQ to Objects 用於對象的查詢 –LINQ to XML 對XML數據的查詢 –LINQ to ADO.NET 對資料庫的查詢 •LINQ to DataSets 數據集 •LINQ to Entities ORM對象 •LINQ to SQL 簡易ORM框架 •命名空間在System.Linq •實現 IEnumerable<T> 或 IQueryable<T> 介面的對象都可使用LINQ操作 LINQ框架圖:
var q =
from c in db.Customers
where c.City == "London"
select c; •語法與資料庫的SQL命令有些相似
select * from employee where empno=7376; LINQ基礎操作符: •聚合 •Aggregate 對序列執行一個自定義方法 •Average 計算數值序列的平均值 •Count 返回序列中的項目數(整數) •LongCount 返回序列中的項目數(長型) •Min 查找數字序列中的最小數 •Max 查找數字序列中的最大數 •Sum 彙總序列中的數字 •元素 •DefaultIfEmpty 為空序列創建預設元素 •ElementAt 返回序列中指定索引的元素 •ElementAtOrDefault返回序列中指定索引的元素,或如果索引超出範圍則返回預設值 •First 返回序列中的第一個元素 •FirstOrDefault 返回序列中的第一個元素,或者如果未找到元素,則返回預設值 •Last 返回序列中的最後一個元素 •LastOrDefault 返回序列中的最後一個元素,或者如果未找到元素,則返回預設值 •Single 返回序列中的單個元素 •SingleOrDefault 返回序列中的單個元素,或者如果未找到元素,則返回預設值 •排序 •OrderBy 以升序按值排列序列 •OrderByDescending 以降序按值排列序列 •ThenBy 升序排列已排序的序列 •ThenByDescending 降序排列已排序的序列 •Reverse 顛倒序列中項目的順序 •… •… LINQ的未來: •一切皆可LINQ,一切皆有可能 •程式語言向自然語言的進化 •資料庫存儲在軟體系統分層中更清晰 •基於.net平臺的軟體體系更好應用ORM •影響編程習慣,及解決問題的思路 LINQ參見資料: •http://dev.yesky.com/topic/305/8142805.shtml •http://www.verycd.com/topics/2762344/ •http://www.docin.com/p-49692160.html •http://cid-79cf5e75e6e5fd50.spaces.live.com/blog/cns!79CF5E75E6E5FD50!379.entry 轉載自:https://blog.csdn.net/sytweibo/article/details/5542934。