.edmx 檔案概觀 (Entity Framework)
.edmx 檔案是一種 XML 檔案,可定義概念模型、儲存體模型,並讓這兩種模型產生對應。 .edmx 檔也包含 ADO.NET 實體資料模型設計工具 (Entity Designer) 使用的資訊,以圖形方式呈現模型。 建立 .edmx 檔案的建議做法是使用「實體資料模型精靈」。 如需詳細資訊,請參閱 HOW TO:建立新的 Entity Data Model。
使用 Entity Designer 修改模型,以及根據針對基礎資料庫所作的變更而使用 [更新模型精靈] 來更新模型時,會針對 .edmx 檔案進行變更。 如需詳細資訊,請參閱更新模型精靈。 在一些案例中,您也可能必須手動編輯 .edmx 檔案。 如需詳細資訊,請參閱手動編輯 .edmx 檔案 (Entity Framework)。。
根據預設,應以 Entity Designer 開啟 .edmx 檔案。 不過,您也可以經由下列步驟,使用 XML 編輯器開啟 .edmx 檔案:
確定用 Visual Studio 開啟專案。
以滑鼠右鍵按一下 [方案總管] 中的 .edmx 檔案,然後選取 [開啟方式]。
選取 [XML 編輯器],然後按一下 [確定]。
.edmx 檔案內容
下列是 .edmx 檔案內容的高層級解析。 如需詳細資訊,請參閱 Visual Studio XML 目錄的 .edmx 結構描述。
注意: |
---|
目標為 .NET Framework 4 版的應用程式架構描述應在 Microsoft.Data.Entity.Design.Edmx_2.xsd 檔案中定義。目標為 .NET Framework 3.5 版 SP1 的應用程式架構描述應在 Microsoft.Data.Entity.Design.Edmx_1.xsd 檔案中定義。 |
執行階段內容 (edmx:Runtime)
本節包含用來產生 Entity Framework 應用程式之模型和對應檔案的資訊。 如需詳細資訊,請參閱下列<.edmx 檔案屬性>一節的 Build Action 屬性。
注意: |
---|
.edmx 檔案會自動加入參考 ADO.NET Data Services 服務的應用程式。在此情況下,.edmx 檔案會納入 edmx:DataServices 節點,而非 edmx:Runtime 節點。如需詳細資訊,請參閱 ADO.NET Data Services Framework。 |
儲存體模型內容 (edmx:StorageModels):本章節說明目標資料庫結構描述,並使用儲存體結構定義語言 (SSDL) 撰寫。 如需詳細資訊,請參閱 SSDL Specification和 EntityContainer Element (SSDL)。
概念模型內容 (edmx:ConceptualModels):本章節定義應用程式網域中的實體類型、複雜類型、關聯、實體容器、實體集和關聯集。 本章節是使用概念儲存體定義語言 (CSDL) 所撰寫的。 如需詳細資訊,請參閱 CSDL Specification和 EntityContainer Element (CSDL)。
對應內容 (edmx:Mappings):本章節說明概念模型和目標資料庫間的對應,並使用對應規格語言 (MSL) 撰寫。 如需詳細資訊,請參閱 MSL Specification。
設計工具內容 (edmx:Designer)
本章節包含 Entity Designer 使用的資訊,以圖形方式呈現概念模型,並定義某些概念模型和設計階段屬性。
注意: |
---|
.edmx 檔案會自動加入參考 ADO.NET Data Services 服務的應用程式。在此情況下,.edmx 檔案不會納入 edmx:Designer 節點,也不能用 Entity Designer 檢視。如需詳細資訊,請參閱 ADO.NET Data Services Framework。 |
連接內容 (edmx:Connection):本章節說明影響連接字串的概念模型屬性。 目前在這區段中可以設定的屬性只有 MetadataArtifactProcessing 屬性。 如需詳細資訊,請參閱Connection Strings。
選項內容 (edmx:Options):本章節說明選項概念模型屬性。 目前僅能在此設定 ValidateOnBuild 屬性。
圖表 (edmx:Diagrams):本章節包含 Entity Designer 使用的資訊,以圖形顯示方式呈現概念模型。
概念模型屬性
這些概念模型屬性在 .edmx 檔案中定義。 下列清單描述在 Visual Studio [屬性] 視窗中可以看到的概念模型屬性:
注意: |
---|
這些概念模型屬性與在 .edmx 檔案本身中的屬性並不相同。如需詳細資訊,請參閱以下 .edmx File Properties章節。 |
- Code Generation Strategy
針對選取的模型,開啟或關閉產生預設物件層程式碼。 [None] 值關閉產生預設程式碼。 [預設] 值開啟產生預設程式碼。 加入自訂文字範本以產生物件層程式碼時,會將值設定為 [None]。 如需詳細資訊,請參閱產生的程式碼概觀 (實體資料模型設計工具)和 HOW TO:產生自訂物件層程式碼 (實體資料模型設計工具)。
- Connection String
實體用戶端連接字串。 所顯示的連接字串是由該專案的 App.config 或 Web.Config 檔案擷取,且其名稱與 [實體容器] 名稱相同。 如需詳細資訊,請參閱Connection Strings。
- Database Generation Workflow
選取 [從模型產生資料庫] 會執行該工作流程。 如需詳細資訊,請參閱 HOW TO:從概念模型產生資料庫 (實體資料模型工具)和 HOW TO:自訂資料庫產生 (產生資料庫精靈)。
- Database Schema Name
從概念模型產生資料庫時,就會產生資料庫結構描述名稱。
- DDL Generation Template
用來產生資料庫指令碼的文字範本是 [資料庫產生工作流程] 的一部分。 如需詳細資訊,請參閱 HOW TO:從概念模型產生資料庫 (實體資料模型工具)和 HOW TO:自訂資料庫產生 (產生資料庫精靈)。
- Entity Container Access
不論產生的物件內容類別是 [Public] 或 [ Internal] 均可控制。
- Entity Container Name
概念模型實體容器的名稱。 如需詳細資訊,請參閱 EntityContainer Element (CSDL)。
- Lazy Loading Enabled
控制產生之物件內容類別的 LazyLoadingEnabled 屬性為 true 或 false。 如需詳細資訊,請參閱產生的程式碼概觀 (實體資料模型設計工具)。
- Metadata Artifact Processing
控制模型和對應檔案 (.csdl、.ssdl 和 .msl 檔案) 會內嵌在輸出組件中,還是複製到輸出目錄。
- Namespace
概念模型命名空間。 如需詳細資訊,請參閱Schema Element (CSDL)。
- Pluralize New Objects
無論是否複數化新實體集名稱和導覽屬性名稱,均可控制。
- Transform Related Text Templates On Save
將 .edmx 檔案名稱插入至文字範本,讓文字範本與 .edmx 檔案相關。 如需詳細資訊,請參閱 HOW TO:產生自訂物件層程式碼 (實體資料模型設計工具)。 當Transform Related Text Templates On Save屬性設定為 True,則儲存 .edmx 檔案時就會處理所有與 .edmx 檔案相關的文字範本。 屬性設定為 False 時,則不會處理任何相關的文字範本。
- Validate On Build
無論建置專案時是否已驗證模型,均可控制。
.edmx 檔案屬性
Build Action、Custom Tool和Custom Tool Namespace屬性是 [ ] .edmx 檔案的屬性。 如需關於 .edmx 檔案的Copy to Output Directory和File Name 屬性之詳細資訊,請參閱 Visual Studio 文件中的 檔案屬性 (英文)。
注意: |
---|
Copy to Output Directory 檔案屬性並非用來指定要複製到輸出目錄的模型和對應檔案。請改用概念模型的Metadata Artifact Processing屬性。 |
若要在 Visual Studio 中檢視和編輯 .edmx 檔案屬性,請依照下列步驟執行:
在 Visual Studio 中開啟一個包含 .edmx 檔案的專案。
以滑鼠右鍵按一下 [方案總管] 中的 .edmx 檔案,然後選取 [屬性]。
此時,[屬性] 視窗中便會顯示檔案屬性。
下列清單說明 .edmx 檔案的Build Action、Custom Tool和Custom Tool Namespace屬性:
- Build Action
當屬性設定為 EntityDeploy (預設值),則執行建置時,.edmx 檔案會建立三個檔案:概念模型檔案 (.csdl)、儲存體模型檔案 (.ssdl) 和對應檔案 (.msl)。 根據模型屬性Metadata Artifact Processing的值,這些檔案不是內嵌為資源,就是複製到輸出目錄。 如需詳細資訊,請參閱 HOW TO:編輯概念模型屬性。 如需Build Action屬性之值的詳細資訊,請參閱檔案屬性 (英文)。
- Custom Tool
屬性設定為 EntityModelCodeGenerator (預設值),且 [程式碼產生策略] 也設定為 [預設值] 時,Entity Designer 會建立一個原始程式碼檔案,該檔案包含經由 .edmx 檔案中定義之概念模型建立的類別。 如需詳細資訊,請參閱產生的程式碼概觀 (實體資料模型設計工具)。
- Custom Tool Namespace
根據預設,這項屬性為空白。 提供一個值時,這個值會用來做為程式碼的命名空間,該程式碼是經由Custom Tool屬性中指定的工具所產生。 如需詳細資訊,請參閱產生的程式碼概觀 (實體資料模型設計工具)。