Share via


產生模型與對應

Entity Framework 應用程式與服務都是以使用三種 XML 架構語言表示的模型和對應資訊為基礎。

CSDL 會將應用程式資料表示成概念模型中的一組實體和關聯性,而這就是實體資料模型的實作。 儲存體模型以 SSDL 表示,它代表資料存放區的結構描述。 兩個模型之間的對應會以 MSL 表示。

應用程式的 CSDL、SSDL 和 MSL 內容可以透過 ADO.NET Entity Data Model Tools自動產生。 Entity Data Model Wizard會產生模型和對應資訊以及取自現有資料庫的資料類別。 然後可以使用Entity Data Model Designer (以下稱實體設計工具) 以圖形方式修改模型和對應資訊。 或者,您可以使用實體設計工具以圖形方式建立概念模型,然後使用Generate Database Wizard來自動產生儲存體模型、對應、資料類別,以及支援概念模型的資料庫。 在任何一種情況下,您都可以在基礎資料庫變更時,使用Update Model Wizard來更新模型和對應資訊。

EDM 產生器 (EdmGen.exe) 是一個命令列工具,可讓您使用實體與資料來源中之資料表間的一對一對應,產生簡單的概念模型。 您也可以使用 EdmGen.exe 驗證概念模型及產生以模型中之實體類型為基礎的資料類別。 EdmGen.exe 是 Entity Framework 執行階段元件,從 .NET Framework 3.5 版 Service Pack 1 (SP1) 開始便隨附在其中。

考量因素

下列考量因素適用於您使用 實體資料模型 工具從現有資料庫來產生概念模型時:

  • 所有實體都必須有索引鍵。 如果資料庫中擁有沒有主索引鍵的資料表,實體資料模型 工具會嘗試為對應的實體推斷索引鍵。 此外,實體資料模型 工具也會在存放結構描述中產生 DefiningQuery 項目,讓此實體的資料成為唯讀。 如果要讓此實體資料能夠更新,您必須將產生的索引鍵指定為有效索引鍵,然後移除這個 DefiningQuery 項目。

  • 資料庫中只包含外部索引鍵的資料表 (有時稱為純粹的聯結資料表) 和表示兩個資料表間的多對多關聯性之資料表,在概念模型中將不會有對應實體。 當 實體資料模型 工具遇到此類資料表時,資料表在概念模型中會表示成多對多關聯,而非表示成一個實體。 School 模型中的 CourseInstructor 關聯就是這種行為的範例。 如需詳細資訊,請參閱產生 School .edmx 檔案 (Entity Framework 快速入門)

School 模型

使用者入門 (Entity Framework) 一節中的主題會參考名為 School 的範例資料庫。 如需在 SQL Server 的執行個體上產生 School 資料庫的指令碼,請參閱建立 School 範例資料庫 (Entity Framework 快速入門)

School 資料庫包含以下資料表:

  • Course

  • StudentGrade

  • CourseInstructor

  • Department

  • OfficeAssignment

  • OnlineCourse

  • OnsiteCourse

  • Person

這個範例資料庫的特點是包含許多 實體資料模型 工具支援的複雜模型案例。 指令碼會建立資料表之間的關聯性並且插入範例資料,讓您能夠執行範例來查看它們如何運作。 以下所示為 ADO.NET 實體資料模型設計工具中顯示的 School 模型。

Entity Designer 中的 School EDM

另請參閱

概念

將概念模型對應至儲存模型

其他資源

設定 Entity Framework (Entity Framework 工作)
使用者入門 (Entity Framework)
Entity Data Model Tools
CSDL、SSDL 和 MSL 規格