中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

LINQ to SQL有什么用

發布時間:2021-12-02 09:27:37 來源:億速云 閱讀:105 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關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已經開始走向更成熟,先進和自信的一面

關于“LINQ to SQL有什么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永顺县| 平泉县| 河曲县| 罗江县| 琼中| 赞皇县| 庄浪县| 临西县| 会理县| 桃江县| 应城市| 怀安县| 海丰县| 宣化县| 涟水县| 天津市| 桐城市| 来宾市| 都兰县| 吉木乃县| 桦南县| 社旗县| 蒙山县| 神木县| 武清区| 玉门市| 惠水县| 西宁市| 赤水市| 五指山市| 清镇市| 德庆县| 顺昌县| 平陆县| 阿克陶县| 保山市| 宁乡县| 遂昌县| 攀枝花市| 老河口市| 西吉县|