国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

LINQ / LINQ to SQL / LINQ to XXX 它們到底有什么區別

2019-11-17 01:33:12
字體:
來源:轉載
供稿:網友

LINQ / LINQ to SQL / LINQ to XXX 它們到底有什么區別

LINQ是新生事物,不過從不少文章和討論上看來,這方面的概念也已經有點混沌不清了。因此我們經常可以看到這樣的話:

  • LINQ只能將數據表與實體屬性一一對應……
  • LINQ開發指南:在LINQ中進行數據庫字段映射……

以上兩句話其實說的都是LINQ to SQL而不是指LINQ。可能由于LINQ to SQL的上鏡率最廣(連MSDN上About LINQ的第一個示例就是查詢數據庫的),因此許多人都將LINQ to SQL與LINQ混用,這會給初學者造成誤解,認為LINQ就是LINQ to SQL,LINQ to SQL就是LINQ——事實當然不是這樣的。

LINQ是Language-Integrated Query的縮寫,是C# 3.0和VB 9.0中新加入的語言特性,可以在編程時使用內置的查詢語言進行基于集合的操作。這么做可以大大簡化開發過程,提高開發效率。例如:

List<User> userList = GetUserList();var userWithOddId = from u in userList                    where u.UserID % 2 == 1                    select u; foreach (User u in userWithOddId){    Console.WriteLine(u.UserName);}

如果沒有LINQ,要篩選出ID為奇數的User對象則需要創建一個List,然后遍歷整個列表,將符合特定條件的User對象放入新列表。而有了LINQ,這部分的篩選就變得非常容易,甚至只需要一句話就能完成。如果覺得這個例子不夠說明LINQ對生產力有重大貢獻的話,請關注我接下來的一篇文章(暫定名為《我們為什么要擁抱LINQ》)。LINQ特指形如上面這段代碼中from...where...select這樣的用法,其返回值是IQueryable<T>或IEnumerable<T>。

LINQ to SQL是.NET 3.5內置的一個輕量級O/R Mapping解決方案,可以將數據表映射為實體對象,方便開發人員對數據庫的操作。可見,LINQ to SQL實只是LINQ的一個實現,提供了一個可以查詢SQL Server數據庫的LINQ PRovider。

LINQ Provider是LINQ查詢的執行器,標準LINQ語法支持許多的操作符,但是某個具體的LINQ實現可能只支持其中的一部分。在.NET 3.5默認提供了三種LINQ Provider,分別是LINQ to Object(即上面的例子),LINQ to SQL以及LINQ to xml

LINQ to XXX表示使用LINQ針對XXX這種數據進行查詢的解決方案。我們可以自定義LINQ Provider,使用我們自定義的查詢規則來處理特定數據集。目前互聯網上已經可以找到數十種LINQ Provider(如LINQ to Flickr,LINQ to NHibernate等),而已經處于beta 3階段的ADO.NET Entity Framework,最終也會提供一個LINQ Provider,叫做“LINQ to Entities”。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双桥区| 凤冈县| 顺昌县| 鹰潭市| 广丰县| 兰溪市| 凤冈县| 西乌珠穆沁旗| 东阳市| 堆龙德庆县| 纳雍县| 昌平区| 万盛区| 五莲县| 望谟县| 武陟县| 垣曲县| 新蔡县| 建瓯市| 延边| 望都县| 宽城| 敦煌市| 闽侯县| 六枝特区| 汾西县| 衡水市| 阳东县| 拉孜县| 博客| 抚宁县| 西贡区| 平潭县| 岳普湖县| 宁安市| 陈巴尔虎旗| 鄯善县| 新兴县| 泊头市| 博野县| 新野县|