.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 檔案:

  1. 確定用 Visual Studio 開啟專案。

  2. 以滑鼠右鍵按一下 [方案總管] 中的 .edmx 檔案,然後選取 [開啟方式]。

  3. 選取 [XML 編輯器],然後按一下 [確定]。

.edmx 檔案內容

下列是 .edmx 檔案內容的高層級解析。 如需詳細資訊,請參閱 Visual Studio XML 目錄的 .edmx 結構描述。

Cc982042.note(zh-tw,VS.100).gif注意:
目標為 .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 屬性。

Cc982042.note(zh-tw,VS.100).gif注意:
.edmx 檔案會自動加入參考 ADO.NET Data Services 服務的應用程式。在此情況下,.edmx 檔案會納入 edmx:DataServices 節點,而非 edmx:Runtime 節點。如需詳細資訊,請參閱 ADO.NET Data Services Framework

  • 儲存體模型內容 (edmx:StorageModels):本章節說明目標資料庫結構描述,並使用儲存體結構定義語言 (SSDL) 撰寫。 如需詳細資訊,請參閱 SSDL SpecificationEntityContainer Element (SSDL)

  • 概念模型內容 (edmx:ConceptualModels):本章節定義應用程式網域中的實體類型、複雜類型、關聯、實體容器、實體集和關聯集。 本章節是使用概念儲存體定義語言 (CSDL) 所撰寫的。 如需詳細資訊,請參閱 CSDL SpecificationEntityContainer Element (CSDL)

  • 對應內容 (edmx:Mappings):本章節說明概念模型和目標資料庫間的對應,並使用對應規格語言 (MSL) 撰寫。 如需詳細資訊,請參閱 MSL Specification

設計工具內容 (edmx:Designer)

本章節包含 Entity Designer 使用的資訊,以圖形方式呈現概念模型,並定義某些概念模型和設計階段屬性。

Cc982042.note(zh-tw,VS.100).gif注意:
.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 [屬性] 視窗中可以看到的概念模型屬性:

Cc982042.note(zh-tw,VS.100).gif注意:
這些概念模型屬性與在 .edmx 檔案本身中的屬性並不相同。如需詳細資訊,請參閱以下 .edmx File Properties章節。

  • Connection String
    實體用戶端連接字串。 所顯示的連接字串是由該專案的 App.config 或 Web.Config 檔案擷取,且其名稱與 [實體容器] 名稱相同。 如需詳細資訊,請參閱Connection Strings
  • Database Schema Name
    從概念模型產生資料庫時,就會產生資料庫結構描述名稱。
  • Entity Container Access
    不論產生的物件內容類別是 [Public] 或 [ Internal] 均可控制。
  • Metadata Artifact Processing
    控制模型和對應檔案 (.csdl、.ssdl 和 .msl 檔案) 會內嵌在輸出組件中,還是複製到輸出目錄。
  • 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 ActionCustom ToolCustom Tool Namespace屬性是 [ ] .edmx 檔案的屬性。 如需關於 .edmx 檔案的Copy to Output DirectoryFile Name 屬性之詳細資訊,請參閱 Visual Studio 文件中的 檔案屬性 (英文)。

Cc982042.note(zh-tw,VS.100).gif注意:
Copy to Output Directory 檔案屬性並非用來指定要複製到輸出目錄的模型和對應檔案。請改用概念模型的Metadata Artifact Processing屬性。

若要在 Visual Studio 中檢視和編輯 .edmx 檔案屬性,請依照下列步驟執行:

  1. 在 Visual Studio 中開啟一個包含 .edmx 檔案的專案。

  2. 以滑鼠右鍵按一下 [方案總管] 中的 .edmx 檔案,然後選取 [屬性]。

    此時,[屬性] 視窗中便會顯示檔案屬性。

下列清單說明 .edmx 檔案的Build ActionCustom ToolCustom 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屬性中指定的工具所產生。 如需詳細資訊,請參閱產生的程式碼概觀 (實體資料模型設計工具)

另請參閱

概念

產生的程式碼概觀 (實體資料模型設計工具)

其他資源

CSDL Specification