概念結構描述 (CSDL)

概念結構描述是物件模型的設計範本,實體資料模型 (EDM) 上建置的應用程式將會使用此物件模型。概念結構描述中宣告的命名空間名稱將會是用來限定產生之物件模型中之實體與關聯類別的命名空間名稱。

EDM 架構提供了實體與關聯的基本結構。應用程式設計人員會根據這些型別來衍生實體與關聯。概念結構描述中定義的型別會對應到描述儲存模型的中繼資料。

概念結構描述會使用稱為概念結構定義語言 (CSDL) 的 XML Dialect。儲存中繼資料會使用稱為存放結構定義語言 (SSDL) 的 XML Dialect。

Note附註

CSDL 命名空間與 XML 命名空間不同。CSDL 命名空間是用來完整限定實體類型名稱和關聯名稱。例如,當對應結構描述語言 (MSL) 參考實體類型時,必須提供完整名稱。此外,當產生類別時,會在同名的 CLR 命名空間中建立這些類別。CSDL 位於 XML 命名空間 https://schemas.microsoft.com/ado/2006/04/edm。這兩種命名空間是分開且不同的,不應該混淆。

命名空間和對應

概念結構描述的根項目是 Schema 項目。其中包含指定 CSDL 命名空間的 Namespace 屬性。此命名空間會用於對應規格,以便將 CSDL 型別連接到儲存中繼資料。

下列來自 CSDL 結構描述的宣告包含了對應規格中所使用的命名空間,以便將範例應用程式 AdventureWorksHRModel 中的實體和關聯對應到儲存中繼資料。

<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRModel"
        Alias="Self" 
        xmlns="https://schemas.microsoft.com/ado/2006/04/edm">

SSDL 檔案中有類似的一行。

<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRTarget"
        Alias="Self" 
        xmlns="https://schemas.microsoft.com/ado/2006/04/edm/ssdl">

這些宣告中所用的命名空間名稱會在建構的資料模型中反映其用途。AdventureWorksHRModel 是在這些範例中對應到目標中繼資料命名空間 AdventureWorksHRTarget 的概念模型。

概念和儲存結構描述中的實體容器項目與 Schema 項目無關,但是這些項目在兩個情況下都是 Schema 項目的子項目。

在對應規格中,EntityContainerMapping 項目會對應到兩個容器物件,而不會參考其命名空間名稱:edm:CdmEntityContainer="HumanResources"``edm:StorageEntityContainer="HumanResources"。使用結構描述命名空間名稱所限定的實體容器名稱會造成對應例外狀況。

下列對應規格語言 (MSL) 標題會顯示在概念結構描述中的 HumanResources 實體容器 (這裡稱為 CdmEntityContainer) 與儲存中繼資料 (這裡稱為 StorageEntityContainer.) 之間的對應。

<?xml version="1.0" encoding="utf-8"?>
<Mapping edm:Space="C-S" 
        xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
  <EntityContainerMapping CdmEntityContainer="HumanResources"
                         StorageEntityContainer="HumanResources">

其他 CSDL 結構描述項目會同樣地對應到對應規格中的 SSDL 規格。本章節的主題描述用來實作 EDM 上建置之物件模型的型別和項目。

本章節內容

Schema 項目 (CSDL)

Namespace 屬性 (CSDL)

EntityType 項目 (CSDL)

Association 項目 (CSDL)

EntityContainer 項目 (CSDL)

另請參閱

概念

實作實體 (EDM)
實作關聯 (EDM)
AdventureWorks 完整模型 (EDM)

其他資源

EDM 規格