LINQ 與 Visual Studio Orcas March 2007 CTP

LINQ (Language Integrated Query) 是 Microsoft .NET Framework 未來本版的延伸功能,目的在 C# 與 Visual Basic 程式語言原生語法 (native language syntax) 中增添查詢能力。在程式語言中增添查詢能力,將大幅精簡存取資料庫,XML 與 Collection Object 之程式碼 ,並在編譯時期即可檢查出存取相關的錯誤與法。

LINQ 目前最新釋出是內建於  Visual Studio Orcas March 2007 CTP 內的版本,此版本中 LINQ 也更改了部分名稱,例如針對 ADO.NET vNEXT Entity Framework 的出現,LINQ 分類改為:

  1. LINQ to ADO.NET
    • LINQ to Entities
    • LINQ to SQL (舊名DLINQ)
    • LINQ to Dataset
  2. LINQ over XML (簡稱 XLINQ)
  3. LINQ to Objects API

過去把 LINQ to SQL 代表 LINQ 於資料庫存取能力的稱呼方法,已經做了更正,而改以範圍更大的 LINQ to ADOE.NET 稱乎。對於 LINQ to SQL 目前僅支援 Microsoft SQL Server 之問題,也可透過 LINQ to ADO.NET 其他方案解決。針對 ADO.NET vNEXT 所衍生的 LINQ 命名更動,可於 Somasegar's 的  LINQ and ADO.NET innovations 得知詳情。

LINQ 在這個版本中仍有許多語法的異動,Charlie Calvert 的 blog 中已經有針對  Visual Studio Orcas March 2007 CTP LINQ 範例程式的更新版,有興趣的朋友不妨下載之。過去微軟所釋出的 LINQ 相關文件多以 LINQ May 2006 CTP 為主,須留意語法上的差異。

此外,針對 Microsoft SQL Server 提供視覺化 O-R Mapping 設計工具 LINQ To SQL Designer 已經內建於 Visual Studio Orcas March 2007 CTP 而無須額外下載,到是 ADO.NET vNEXT Entity Framework 仍未見到視覺化設計工具。以 C# 為例,啟用 LINQ To SQL Designer 方式很簡單,在專案中案下 Ctrl+Shift+A 為目前 Project 增添新的 Item :

選取 Dling to SQL File 選項,此時專案檔內就會產生 .dbml 相關的設計工具檔案,此時若我們將 Server Explorer 內的 SQL Server Table 以滑鼠拖曳到 DataClasses1.dbml 視窗中,Object 對應 Relational Database Table 間的關聯程式碼就會自動產生於 DataClass1.designer.cs 中,而無須再自行撰寫程式碼對應兩者間的關係。接下來即可依照DLinq - .NET Language-Integrated Query for Relational Data, May 2006 的內容,熟悉 LINQ to SQL 之語法。這份文件雖然較舊,與目前版本間有些差異,但是介紹 LINQ to SQL 較完整的資料。

LINQ to SQL Designer 精靈產生出的檔案與 LINQ May 2006 CTP 的 LINQ Designer 並不相容,目前有看到嘗試轉換的文章僅有這一篇