Pluralsight Data Layer Validation with Entity Framework 4.1 視頻教學 英文正式版
碟片編號:TIC2292
碟片數量:1片
銷售價格:200
瀏覽次數:34182
軟體簡介:
ADO.NET Entity Framework 是微軟以 ADO.NET 為基礎所發展出來的物件關聯對
應 (O/R Mapping) 解決方案,早期被稱為 ObjectSpace,現已經包含在 Visual
Studio 2008 Service Pack 1 以及 .NET Framework 3.5 Service Pack 1 中發表。
ADO.NET Entity Framework 以 Entity Data Model (EDM) 為主,將資料邏輯層切
分為三塊,分別為 Conceptual Schema, Mapping Schema 與 Storage Schema 三層,
其上還有 Entity Client,Object Context 以及 LINQ 可以使用。
背景
長久以來,程式設計師和資料庫總是保持著一種微妙的關係,在商用應用程式中,
資料庫一定是不可或缺的元件,這讓程式設計師一定要為了連接與存取資料庫而去學習
SQL 指令,因此在資訊業中有很多人都在研究如何將程式設計模型和資料庫整合在一起,
物件關聯對應 (Object-Relational Mapping) 的技術就是由此而生,像Hibernate或
NHibernate都是這個技術下的產物,而微軟雖然有了ADO.NET這個資料存取的利器,但卻
沒有像NHibernate這樣的物件對應工具,因此微軟在.NET Framework 2.0發展時期,就提
出了一個ObjectSpace的概念,ObjectSpace可以讓應用程式可以用完全物件化的方法連接
與存取資料庫,其技術概念與NHibernate相當類似,然而ObjectSpace工程相當大,在.NET
Framework 2.0完成時仍無法全部完成,因此微軟將ObjectSpace納入下一版本的.NET
Framework中,並且再加上一個設計的工具(Designer),構成了現在的 ADO.NET Entity
Framework。
Entity Framework 利用了抽象化資料結構的方式,將每個資料庫物件都轉換成應用程式物
件 (entity),而資料欄位元都轉換為屬性 (property),關聯則轉換為結合屬性 (association),
讓資料庫的 E/R 模型完全的轉成物件模型,如此讓程式設計師能用最熟悉的程式語言來呼叫
存取。而在抽象化的結構之下,則是高度整合與對應結構的概念層、對應層和儲存層,以及支
援 Entity Framework 的資料提供者 (provider),讓資料存取的工作得以順利與完整的進行。
* 概念層:負責向上的物件與屬性顯露與存取。
* 對應層:將上方的概念層和底下的儲存層的資料結構對應在一起。
* 儲存層:依不同資料庫與資料結構,而顯露出實體的資料結構體,和 Provider 一起,負責
實際對資料庫的存取和 SQL 的產生。
架構
概念層結構
概念層結構定義了物件模型 (Object Model),讓上層的應用程式碼可以如物件導向的方式般存
取資料,概念層結構是由 CSDL (Conceptual Schema Definition Language) 所撰寫。
對應層結構
對應層結構負責將上層的概念層結構以及下層的儲存體結構中的成員結合在一起,以確認資料的
來源與流向。對應層結構是由 MSL (Mapping Specification Language) 所撰寫。
儲存層結構
儲存層結構是負責與資料庫管理系統(DBMS)中的資料表做實體對應 (Physical Mapping),讓資
料可以輸入正確的資料來源中,或者由正確的資料來源取出。它是由 SSDL (Storage Schema
Definition Language) 所撰寫。
開發工具
目前 ADO.NET Entity Framework 的開發,在 Visual Studio 2008 中有充分的支援,在安裝
Visual Studio 2008 Service Pack 1 後,檔案範本中即會出現 ADO.NET 實體資料模型 (ADO.NET
Entity Data Model) 可讓開發人員利用 Entity Model Designer 來設計 EDM,EDM 亦可由Windows
記事本等文字編輯器所編輯。
支援廠商
目前已有數個資料庫廠商或元件開發商宣佈要支援 ADO.NET Entity Framework[5]:
* Mircosoft,支持MsSQL.
* Core Lab,支援Oracle、MySQL、PostgreSQL 與 SQLite 資料庫。
* IBM,實作 DB2 使用的 LINQ Provider。
* MySQL,發展 MySQL Server 所用的 Provider。
* Npqsql,發展 PostgreSQL 所用的 Provider。
* OpenLink Software,發展支援多種資料庫所用的 Provider。
* Phoenix Software International,發展支援 SQLite 資料庫的 Provider。
* Sybase,將支援 Anywhere 資料庫。
* VistaDB Software,將支援 VistaDB 資料庫。
* DataDirect Technologies,發展支援多種資料庫所用的 Provider。
* Firebird,支援 Firebird 資料庫。