LINQ查詢和更新資料基本可以取代SQL語句,但建立和刪除資料庫檔案等維護工作不能代替SQL語句,當然也可以用VS2010建立資料庫檔案,但不如資料庫工具使用SQL語言方便。查詢如篩選、排序、彙總、提取欄位、分組和聯接等,LINQ的寫法與SQL基本一樣,還多一項Lambda表示式。
在C#中引入LINQ是為了在編寫和編譯資料庫程式碼時就能知道是否有錯,編寫時能得到LINQ類庫的提示,例如要新增的屬性成員和關鍵字提示,使程式設計輕鬆方便。如果不用LINQ,SQL語句只能以字串形式嵌入到執行語句,編譯時發現不了字串的錯誤,執行時出錯,讓人惱火。
另一個優點是LINQ發展到LINQ to SQL,可以用O/R設計器處理資料庫,把資料庫對映為C#中的類,為資料庫的視覺化程式設計提供方便。參見《C#程式設計指南》(但堯,清華大學出版社2011年1月,可網購),該書比較詳細討論LINQ處理資料庫,有很多示例演示如何對SQL2008的示例資料庫AdventureWorks2008(以及DW2008,LT2008)的查詢更新排序最佳化聯接等。
LINQ查詢和更新資料基本可以取代SQL語句,但建立和刪除資料庫檔案等維護工作不能代替SQL語句,當然也可以用VS2010建立資料庫檔案,但不如資料庫工具使用SQL語言方便。查詢如篩選、排序、彙總、提取欄位、分組和聯接等,LINQ的寫法與SQL基本一樣,還多一項Lambda表示式。
在C#中引入LINQ是為了在編寫和編譯資料庫程式碼時就能知道是否有錯,編寫時能得到LINQ類庫的提示,例如要新增的屬性成員和關鍵字提示,使程式設計輕鬆方便。如果不用LINQ,SQL語句只能以字串形式嵌入到執行語句,編譯時發現不了字串的錯誤,執行時出錯,讓人惱火。
另一個優點是LINQ發展到LINQ to SQL,可以用O/R設計器處理資料庫,把資料庫對映為C#中的類,為資料庫的視覺化程式設計提供方便。參見《C#程式設計指南》(但堯,清華大學出版社2011年1月,可網購),該書比較詳細討論LINQ處理資料庫,有很多示例演示如何對SQL2008的示例資料庫AdventureWorks2008(以及DW2008,LT2008)的查詢更新排序最佳化聯接等。