成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LINQ to SQL全面概述

開發 后端
這里介紹LINQ to SQL,LINQ to SQL 目前只支持SQL Server(SQL Server Compact版本正在開發中),有跡象表明,也可能會支持DB2,Informix IDS,Oracle官方說法是他們在關注Linq的進展,VistaDB, MySQL。

在向大家詳細介紹LINQ to SQL之前,首先讓大家了解下LINQ to SQL不能算純粹意義上的ORM,因為它支持的數據庫種類和類型還不夠多,然后全面介紹LINQ to SQL。

LINQ to SQL 目前只支持SQL Server(SQL Server Compact版本正在開發中),有跡象表明,也可能會支持DB2,Informix IDS,Oracle官方說法是他們在關注Linq的進展,VistaDB, MySQL。。。但可以預見的是Linq如果要在2007年底RTM,那么要支持其它數據庫的時間上,并不多,甚至我在Weblog上看到說,對SQL Server Compact的支持都不包含在LINQ v1版本計劃中。不過,MS,IBM,Oracle他們如果真決心做,那么時間不是問題上面的結論如果成立,那么我的***觀點是,LINQ to SQL不能算純粹意義上的ORM,因為它支持的數據庫種類和類型還不夠多

從技術的先進性和難度來看,Java Persistence API和Linq是解決不同層面問題的兩種技術,并且從開發人員的角度來看,Java Persistence API沒有Touch到Linq關注的層面,上面我說了,從編程語言的角度來看,LINQ是來自***層編譯器和開發語言的支持,Java Persistence沒這么底層;另外對于Java Persistence API,Adopt已有的ORM技術比如Hibernate, TopLink, JDO方面,Java Persistence API更像已有Java ORM的集大成者新建的一個API,而LINQ to SQL,LINQ to DataSet,LINQ to XML,LINQ to Entities,LINQ to Object,LINQ to Flickr, LINQ to NHibernate, LINQ to LDAP 已經都是板上定釘的事情,所以從設計上來看,LINQ更大氣和宏觀,因為一旦從編譯器和開發語言的層面的支持,那么其融合滲透和應用的程度就相當高的,我認為其"親和力"相當強悍

ADO.NET Entity Framework(ADO EF)更多的是一個實體或概念設計的服務框架,是現實的實體和實體間的關系映射到將對象層,CLR 類和它們之間的關系上,甚至ADO.NET Team也避免讓ADO EF概念上變成一個類似ORM的設計工具,ADO EF強調的三層{概念層/實體層(Conceptual layer), 元數據層(Source schema)和影射層(Mapping layer)}的靈活、獨立和松散耦合,從而使得你可以將一個概念層/實體層通過定義多個影射層從而映射到多個不同的數據庫上,而這一點LINQ to SQL做不到,首先LINQ to SQL不支持實體的多重繼承(支持有限的繼承),甚至有評論說LINQ to SQL RTM之前都不會獲得many-many relationships的支持,LINQ to SQL更多的是使用dbml屬性非常緊耦合地綁定到一張表的某些特定的數據庫字段上。也就是說LINQ to SQL沒有這么多層,另外它強調的是編程語言對數據查詢和分析的結構化支持(從編程語言的層面)

理論上ADO EF是一個浩大大工程的框架,從而能夠更好的支持流行的Domain Model Driven的開發,這要求它要有三層的設計工具展現你的設計,突現和定位你的實體關系,要求工具能夠根據實體層產生數據庫的腳本或是反向工程,同時需要有精度極高同時有非常Smart的代碼生成工具和界面,同時,而目前Orcas Beta1單薄的的EDM Wizard根本不足以完成這些要求,更早先發布的Entity Data Model Designer Prototype已經成為豐碑快不可超越,看看這里有比較漂亮的一個設計器的錄像--很酷

“Entity Framework the March CTP and Beta 1 are almost identical. There's some last bit of features that we're busily working on now that will appear in Beta 2 and the Orcas Release”這意味著Orcas Beta1和March CTP中 ADO EF變化并不大(ccBoy建議:在Orcas Beta1你可以精力重點放在 LINQ to SQL上),甚至有人認為Orcas's Entity Framework 進度的重大的標志在于Orcas能夠提供出優良的EDM Designer,滿足我們上面說的工程需求,所以Orcas Beta2將是ADO EF的一個重大里程碑,所以結論是,ADO EF和 LINQ to SQL側重點上看兩者的關注點非常不同,相比來說ADO EF開發或性能上會奔重些,但是ADO EF傾向Domain Model Driven和支持更多的流行的數據庫或數據源,但ADO EF絕對不是一個簡單的ORM Tools,理解成實體框架和對象服務層技術會更宏觀,這里面LINQ成為ADO EF中很小的一個低層支撐技術,我剛剛說了LINQ的親和力

從技術開發的角度來看,如果你的實體/業務模型(或者稱為問題域)和已有的數據模型不匹配的時候,你需要考慮ADO EF,反正如果你的實體/業務模型(或者稱為問題域)和已有的數據模型匹配,那么LINQ to SQL 會是不錯的選擇至于LINQ to Entities和LINQ to SQL,上文已經說的比較清楚(思歸翻譯的版本),我總結一下,相同點是,LINQ to Entities是LINQ to SQL的一個超集或加強版(Superset),你看到兩者的Feature對比上,LINQ to Entities更重,它運行或說讓你在一個概念數據模型上(Conceptual data model),你對對象的查詢是發生在這一層

那么不同的地方在于,你使用LINQ to SQL的時候,你的映射,產生的CLR/.NET類是和你的數據/數據庫模型緊耦合或綁定的,如果你改變對象模型,那么你要直接修改這些類,同樣如果數據模型改變,你要使用重新生成對象代碼,而ADO EF在數據/數據庫模型上建立一個概念層/實體層,這使得你要先定義概念層/實體層,接著建立數據/數據庫的腳本(描述),然后在一個影射層建立你的實體和數據之間的邏輯映射,這使得業務和數據源之間有了很好的藕合度和隔離。而LINQ to SQL無法達到這樣的效果,另外LINQ to Entities也直接帶有了ADO EF提供的另外一些強項,比如實體的繼承(Entity Inheritance ),實體的組合(Entity Composition)

Entity SQL (eSQL)更多的時候,它是SQL語句的變體是完全面向查詢語言的(Query Language),但是是對應的是對實體數據模型的查詢,是對實體,實體中的屬性進行查詢,更多的時候Entity SQL 是面對ADO EF的Object Services,對象服務是ADO EF中能夠將實體像對象一樣工作和操作的服務,事實上Object Services往往是事實上的內存對象數據庫,當然在這里你只能查詢對象或實體并獲得它們,你不能是使用SQL DML語句一樣,Update或Deleted對象或實體(當然未來可以,現在v1版本是做好查詢),當我們要和上面說的概念層/實體層交互的時候,***你可以使用Entity SQL (eSQL),第二你要使用LINQ to Entities,Entity SQL (eSQL)是文本和字符的,所以它支持組合(composable),比如子查詢,而后你明白所有的LINQ to XXXX,其實就是說你如何讓你在編程語言這個層面,很快地享受到LINQ針對XXXX(數據源或對象源)的數據集成和查詢的能力以及便利(內置的表達式,操作語句,代碼生產效率,性能等等)

***是Entity Client,這個一個新型的API,也就是專門用來訪問實體源或實體數據模型,Entity Client使用自己的語言-Entity SQL (eSQL),它也是ADO.NET提供的另外一個數據源提供驅動,你可以用理解SqlClient一樣來理解Entity Client,它是另外一條訪問實體數據模型的途徑,它存在的意義有兩個,***它的訪問性能會高,第二,EntityClient返回的結果是 dbDataReader,這意味著你可以使用統一或者你非常熟悉的代碼經驗比如你使用ADO.NET操作 SQL Server, Oracle,MySQL的技能對查詢回來的數據進行嫻熟地處理,抑或是如拌涼菜般地翻騰這些數據。

作為一個顧問和實踐者,我們首先要去做,然后要面臨給予自己和其他的人一些建議,在未來的6個月到一年:
1. LINQ的出現展示了一種***層的新型張力,任何現代編程語言最重要的能量和動力在這個語言的編譯器,LINQ的出現讓所有有關語言先進性爭論的時代劃句號,作為技術人員你需要察覺到這種變化和帶來的影響
2. 從目前的Orcas Beta1版本來看,建議你在未來的6-12月優先學習C# 3.0和LINQ,掌握新型的表達式、語法和語句,這是未來編程語言中和For,IF語句一樣的基本功,而每個開發人員需要熟練的使用這些語句,當然能夠研究和搞明白這些新語句的背后的實現和原理,那是***的
3.對于那些已經掌握C#3.0和LINQ的中級的開發人員來說,在LINQ to SQL(LINQ2SQL)和ADO.NET Entity Framework來說,可以優先考慮學習和研究LINQ to SQL,并將其這種技術在項目或應用中做以實踐
4.ADO.NET Entity Frameworkd的 Entity Desiger出來之前,保持對它的關注,而不用花太多的時間,另外從一個開發人員的角度來看,ADO EF不是必須的,甚至在設計人員特別是Domain Model Drivening的人員要關注和準備的,當然這些在6個月之后考慮和研究都不晚
5.Visual Studio Orcas的發布日期依然是一個很關鍵的因素,可以預見的是C# 3.0和LINQ將會在人們期望和愿望實現的時間點發布,但涉及到ADO.NET Entity Framework的部分有多少,這個要觀察和注意,但反過來說,有了LINQ和LINQ to SQL已經讓我們感到物有所值了
6.在你的項目中考慮新的功能特性對應用架構的影響,同時也盡可能多練習在ASP.NET這種傳統的開發技術下LINQ和C# 的應用
7.繼續保持對Visual Studio Orcas的關注,因為.NET 3.5或.NET 4.0已經開始走向更成熟,先進和自信的一面

【編輯推薦】

  1. LINQ匿名類型分析
  2. LINQ Where子句介紹
  3. LINQ使用Where擴展方法
  4. 介紹LINQ一些強大功能
  5. Linq使用Select淺談
責任編輯:佚名 來源: IT168
相關推薦

2009-09-18 16:20:36

LINQ基礎

2009-09-16 17:21:53

LINQ遍歷

2009-09-09 14:40:43

Linq to sql

2009-09-17 16:46:34

Linq to sql

2009-09-15 13:53:53

Linq To Sql

2009-09-15 11:29:04

LINQ to SQL

2009-09-18 16:12:22

LINQ TO SQL

2009-09-15 13:37:24

Linq To Sql

2009-09-10 11:10:21

Linq Librar

2009-09-10 13:42:47

Linq UserIn

2009-09-10 16:28:17

LINQ查詢

2009-09-14 09:55:55

Linq基本語法

2009-09-18 13:44:38

LINQ設計模式

2009-09-14 15:15:45

LINQ技術

2009-09-08 11:25:42

Linq foreac

2009-09-18 16:07:10

Linq Where操

2009-09-08 16:08:44

Linq使用order

2009-09-16 10:38:43

LINQ查詢

2009-09-17 13:15:20

LINQ查詢

2009-09-09 10:58:58

Linq結果集形狀
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久国产美女视频 | 国产精品久久久久久久久久久久午夜片 | 日本精品视频一区二区三区四区 | 欧美国产日韩在线观看 | 欧美xxxx日本 | 91精品国产色综合久久 | 伊人精品 | 不卡在线视频 | 97精品超碰一区二区三区 | 国产成人久久久 | 中文字幕日韩一区 | 日韩中文一区二区三区 | 你懂的免费在线 | 欧美久久久久久久久中文字幕 | 在线欧美视频 | 亚洲欧洲av在线 | 亚洲视频免费在线观看 | 亚洲一区二区三区四区五区中文 | 国产一区二区不卡 | 九九精品网 | 欧美簧片| 国产真实乱全部视频 | 一区二区三区在线免费 | 久久久国产视频 | 污片在线免费观看 | 国产精品国产成人国产三级 | 日韩精品一区二区三区免费观看 | 7777奇米影视 | 久久亚洲一区 | 亚洲国产成人精品久久久国产成人一区 | 日韩欧美不卡 | a级片www | 国产在线观看一区二区三区 | 久久久久九九九女人毛片 | 亚洲小视频在线观看 | 久久久女女女女999久久 | 国产在线一区二区三区 | 久久亚洲天堂 | 欧美.com | 青草久久免费视频 | 精精国产xxxx视频在线 |