Entity Framework 及其他平台

大多數的應用程式都會密集使用關聯式資料庫。 開發人員需要一個資料模型,將應用程式程式碼連接到存放區結構。

實體資料模型 (EDM) 支援各種儲存體模型之間的應用程式案例以及對 CLR 和資料庫管理系統 (如 SQL Server) 的對應。 與 CLR 的對應是程式設計所需,與關聯式資料庫的對應則是保存所需。 隨著 EDM 的引進,ADO.NET 提供了一個功能齊全的平台,可將可程式化型別對應到存放區。

新資料模型至少有四個現有的候選平台:

  • SQL Server

  • Common Language Runtime (CLR)

  • 統一模組化語言 (UML)

  • XML 結構描述定義 (XSD) 語言

現有的平台沒有一個可以滿足資料應用程式的所有需求。

  • SQL Server 不提供與程式語言之間的輕鬆整合, 它的以文字為主的查詢在程式碼中經常會很麻煩。 資料庫資料表會使用外部索引鍵塑造關聯性。 SQL 無法塑造嚴格的內含項目。

  • CLR 沒有塑造關聯性所需的限制式。

  • UML 太抽象了, 它不會實作資料型別或保存。

  • XSD 規格與程式語言類別和資料庫結構描述很不一樣,所以無法同時為 CLR 和關聯式資料庫模型的對應提供中性格式。

EDM 與 CLR 和資料庫管理系統的對應

EDM 會同時對應到 CLR 和關聯式資料庫。 CLR 可讓開發人員以熟悉的編碼格式使用資料。 程式碼中的資料型別會對應到關聯式資料庫,這是經過證明的資料保存標準。

若要實作結構描述、程式語言和資料庫資料表之間的對應,EDM 會使用一個與存放區無關的檢視機制來利用關聯式資料庫管理系統的工程。 傳統的應用程式已經使用資料庫檢視表來進行資料顯示和更新,但是建構檢視表通常需要牽涉到資料表聯結和投影的複雜 SQL 語法。 結構描述與儲存區之間的 EDM 對應會透過 ADO.NET 資料提供者將程式碼中的物件連接到資料庫。

EDM 資料服務不會與任何特定的儲存結構描述相依。 需要多個資料來源的應用程式可以針對每一個資料來源維護個別對應。

開發平台

EDM 在每一個實作階段都支援應用程式設計。 EDM 支援許多實用的現有建構,而且它的設計會使用從定義完善的資料模型系統所繪製的概念,例如關聯式資料庫模型、實體-關聯性模型和 Common Language Runtime (CLR)。

EDM 會塑造複雜的應用程式功能,並以宣告方式擷取可程式化物件與資料庫儲存區之間的語意關聯性。

EDM 包含關聯式資料庫模型的功能,而且會藉由加入強型別、實體層級識別、參考和關聯性來加以擴充。

由於 EDM 規格是全面性的,所以您可以使用 EDM 規格的子集。 例如,應用程式或架構可以使用實體、關聯和參考,而不使用繼承。

根據以下兩個準則,EDM 是可以擴充的:

  • 可以使用繼承來定義新的型別以及現有型別的擴充。 應用程式可以定義型別之間及跨結構描述界限的關聯性。

  • EDM 上建置之現有資料的擴充不會影響不使用該擴充的功能。

可以透過 EDM 定義應用程式資料模型,以達成應用程式之間及架構之間的共用。 根據 EDM,為某個應用程式定義的命名空間可以從另一個建置的應用程式使用。

此查詢模型的設計目的是要在關聯式代數之下關閉。 這表示,套用 EDM 概念上的關聯式運算子會傳回同樣位於 EDM 內的結果。

將 EDM 與 CLR 整合會擷取各式各樣的資料語意。 EDM 型別系統會將程式語言中的宣告對應到基礎儲存結構內的資料。

EDM 的實體在邏輯上與所用的保存實作無關。 此資料模型不會指定任何特定的對應或實作,而且實體可以對應到各種實體資料來源。 EDM 不是用來包含或取代 SQL Server 資料定義語言 (DDL)。

設計階段

使用 EDM 規格的資料模型設計與實作需要三個初步開發階段。 底下依照順序列出此程序中每個階段將會發生的動作。

  • 在 XML 檔中指定應用程式定義域中的實體和關聯性。

  • 在第二個 XML 檔中指定中繼資料,其中描述將儲存應用程式之資料的資料庫結構。

  • 第一個結構描述中的實體和關聯性會對應至中繼資料檔中的對應資料庫結構。

第一個結構描述代表開發的概念階段,在此階段中,實體和關聯性是利用稱為概念結構定義語言 (CSDL) 的 XML 語法所定義。 這類檔案的副檔名為 .csdl。 如需 CSDL 語法的詳細資訊,請參閱結構描述 (EDM)

儲存中繼資料結構描述會使用存放結構定義語言 (SSDL)。

將概念結構描述對應到儲存中繼資料會使用稱為對應規格語言 (MSL) 的第三個 XML 語法。 如需對應實體和關聯性及 EDM 結構描述型別的詳細資訊,請參閱結構描述和對應規格 (Entity Framework)

CSDL 結構描述是用來產生應用程式程式碼所使用的可程式化物件模型。 支援 Common Language Runtime (CLR) 的語言可以使用建置程序所建立的物件模型。 如需應用程式程式碼的範例,請參閱範例應用程式 (Entity Framework)

另請參閱

概念

實作實體 (EDM)
實作關聯 (EDM)

其他資源

EDM 規格
範例應用程式 (Entity Framework)