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框架圖:
 
LINQ基礎語法:
 
•From ?? In ** where … select  new {};
–查詢語法是以 from 關鍵字開頭的,而不是以 select 關鍵字開頭的?
–為了IDE的智能感知(Intelisence)這個功能,select 關鍵字放在后面
•例:
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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM