語言集成查詢(LINQ)提供了將聲明性查詢語法無縫集成到命令式語言中的能力,主要是C#和VB.NET。LINQ的開發解決了開發人員在面向對象環境中執行查詢時遇到的問題。它作為Microsoft?.NET Framework 3.5版的一部分于2007年1...
語言集成查詢(LINQ)提供了將聲明性查詢語法無縫集成到命令式語言中的能力,主要是C#和VB.NET。LINQ的開發解決了開發人員在面向對象環境中執行查詢時遇到的問題。它作為Microsoft?.NET Framework 3.5版的一部分于2007年11月推出,在Visual Studio?的代號“Orcas”中,在創建語言集成查詢之前,.NET語言沒有查詢關系數據庫或XML文檔的本機方法。使用這些語言編寫的開發人員必須將SQL或XQuery分別作為字符串嵌入,并手動將結果數據映射到.NET對象。嵌入的查詢字符串和映射無法由.NET編譯器驗證,允許在運行時發現潛在的錯誤。在語言集成查詢之前,開發人員面臨的另一個問題是.NET語言只有面向對象的語法來查詢.NET對象的集合。通常,開發人員會迭代整個源集合,根據搜索條件生成新的結果集合。開發人員還可以在生成結果集合的同時轉換數據。這種方法很麻煩;用C或VB編寫的簡單的select查詢至少需要五行代碼,而同一個查詢將需要一行查詢語言的代碼。在面向對象環境中進行查詢的挑戰給了Microsoft創建LINQ的動力。LINQ提供了一種類似SQL的查詢語法,可以與C或VB一起使用,并完成靜態類型檢查。而在查詢.NET集合時,則是這樣通過使用嵌套循環,開發人員可以使用LINQ語法來選擇項目和轉換數據,與純面向對象的語法相比,這將導致更少的代碼行當訪問外部數據源時,LINQ和支持組件消除了在.NET語言本身中嵌入查詢語言和數據映射的需要,LINQ依賴于名為LINQ providers的組件。LINQ to Objects是一種支持LINQ訪問.NET集合的常用提供程序。同樣,也有訪問關系數據庫和XML文檔的提供程序。這些提供程序中的大多數都是.NET Framework中未包含的第三方組件。無論使用的是哪種提供程序,所有查詢都使用相同的LINQ語法。在語言集成查詢語法和提供程序之間,是作為LINQ功能的一部分添加到.NET Framework中的查詢運算符庫。這些運算符執行諸如篩選、排序、集合論操作等任務,由于這些運算符是.NET框架的一部分,因此如果開發人員愿意,也可以不使用LINQ
-
發表于 2020-08-07 19:21
- 閱讀 ( 726 )
- 分類:電腦網絡