日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
LINQORM詳細比較

LINQ有很多值得學習的地方,這里我們主要介紹LINQ ORM之間的關系,包括介紹LINQ to SQL是.NET 3.5內置的一個輕量級O/R Mapping解決方案等方面。

創(chuàng)新互聯(lián)長期為近1000家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為濟陽企業(yè)提供專業(yè)的成都做網站、成都網站建設,濟陽網站改版等技術服務。擁有十多年豐富建站經驗和眾多成功案例,為您定制開發(fā)。

1.LINQ不是ORM,確切地來說,他們之間的關系是:

LINQ的一個子集是屬于ORM的

2.他們之間的唯一的相同點是:

LINQ ORM都是一種技術概念,而不是一種實現,最大的區(qū)別就在于——他們根本就不是一路東西!

LINQ是一種語言特性,在語言(Language)中集成(Integrate)查詢(Query)句法,所以才叫LINQ——Language-Integrated Query,目的是以一種看起來像SQL的方式來完成原本你需要去foreach的工作——最顯著的就是集合操作,比如搜索啊,排序啊,批量更新啊。因為 SQL是為關系數據庫而存在的,關系數據理論是建立在集合論的基礎上的,所以集合操作當然是最本職的工作啦!

ORM是Object/Relation Mapping。Object是哪路?是Object Oriented Programming那路Object,Relation是哪路?是關系數據理論那路Relation,ORM的作用是在對象和關系之間建立映射,讓開發(fā)者可以以面向對象的方式去完成一些關系數據操作——這些原本需要用關系代數、關系操作語言,這些通??雌饋碛悬c生硬,還得花心思去專門學的東西來解決的操作。

LINQ ORM就不是一路上的東西,但是為什么很多人會把他們扯在一起呢?

3.有兩個最主要的原因

第一:LINQ長得太像SQL了!SQL是關系數據訪問領域目前階段當之無愧的帶頭大哥,ORM是一個挺時髦的關系數據訪問面向對象化解決方案,也和SQL離不開關系,兩者就靠SQL搭上邊了。

第二:LINQ to SQL的存在。LINQ to SQL是一個ORM框架,它利用了LINQ的便捷性和LINQ長得像SQL這個特點,實現了一個用LINQ來完成關系型數據庫(這里是SQL SERVER)數據訪問的便捷通道。

4.LINQ / LINQ to SQL / LINQ to XXX

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

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

以上兩句話其實說的都是LINQ to SQL而不是指LINQ??赡苡捎贚INQ 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中新加入的語言特性,可以在編程時使用內置的查詢語言進行基于集合的操作。這么做可以大大簡化開發(fā)過程,提高開發(fā)效率。例如:

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

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

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

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

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


分享標題:LINQORM詳細比較
網站URL:http://www.5511xx.com/article/dhiceph.html