LINQ to SQL簡單介紹
本文向大家介紹LINQ to SQL,可能好多人還不了解LINQ to SQL,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
一. LINQ to Objects
只要實(shí)現(xiàn)了IEnumerable或IEnumerable<T>接口,就都支持。
二. LINQ to SQL(ADO.NET)
◆LINQ to DataSet、LINQ to SQL 和 LINQ to Entities。
◆LINQ to DataSet 提供對(duì) DataSet 的更為豐富的優(yōu)化查詢。
◆LINQ to SQL 可以直接查詢 SQL Server 數(shù)據(jù)庫架構(gòu)。
◆LINQ to Entities 可以查詢實(shí)體數(shù)據(jù)模型。
三. LINQ to XML
LINQ可以看作對(duì)foreach循環(huán)的改進(jìn):
1.它們更簡明、更易讀,尤其在篩選多個(gè)條件時(shí)。
2.它們使用最少的應(yīng)用程序代碼提供強(qiáng)大的篩選、排序和分組功能。
3.無需修改或只需做很小的修改即可將它們移植到其他數(shù)據(jù)源。通常,您要對(duì)數(shù)據(jù)執(zhí)行的操作越復(fù)雜,您體會(huì)到的使用 LINQ 代替?zhèn)鹘y(tǒng)迭代技術(shù)的好處就越多。
四.LINQ to SQL:
1. LINQ要求數(shù)據(jù)庫表必須有主鍵。
2. 做update操作時(shí),生成的sql語句中where條件中不僅包括主鍵id=?,而且包括表中各列 and column2=? and column3=?。。。 這是LINQ自動(dòng)生成SQL語句的嚴(yán)謹(jǐn)所在,這是為了防止并發(fā)情況下,多個(gè)事務(wù)針對(duì)同一條記錄更新時(shí)發(fā)生錯(cuò)誤,假如A事務(wù)更新了該記錄,則B事務(wù)更新會(huì)失敗。
3. update不能更新主鍵。
4. skip().take()生成的sql實(shí)際就是: select count(*) from, 以及 row_num()來實(shí)現(xiàn)分頁。
5. 效率沒有直接使用T-SQL高,感覺適合于中小規(guī)模的,數(shù)據(jù)量不是特別大的開發(fā)中。而且其與asp.net中的一些控件的結(jié)合使用可能不是很方便。
6. 不如使用T-SQL靈活,尤其是查詢比較復(fù)雜,多表聯(lián)接,使用case函數(shù)等。
【編輯推薦】