共用方式為


實體容器 (EDM)

在 實體資料模型 (EDM) 中,EntityContainer 是實體集和關聯集的邏輯群組。由於此程式撰寫模型 (Programming Model) 是從概念結構定義語言 (CSDL) 結構描述建置而來,所以 EntityContainer 是所定義之物件模型中的命名空間 (Namespace) 規格。在存放結構定義語言 (SSDL) 結構描述中,EntityContainer 會識別針對此模型上建置之應用程式保存資料的存放區容器。這可以是關聯式資料庫管理系統 (RDBMS) 或某個其他技術中的資料庫。

EntityContainer 會控制實體與關聯性的範圍。EDM 中的所有型別都是在 EntityContainer 命名空間的範圍內定義。EntitySetAssociationSet 的執行個體是在 EntityContainer 的範圍內建立。同樣地,EntityTypeAssociation 的執行個體是在 EntitySetAssociationSet 的範圍內建立。

在 XML 階層中,EntityContainer 項目和 Schema 項目是分開的,即使在結構描述內定義 EntityContainer 也一樣。對於將 EntityContainer 對應至儲存區來說,這一點非常重要。在對應檔中,EntityContainer 的完整名稱不包含結構描述命名空間名稱。

EntityContainer 是衍生自 EDM 所提供的基本 EntityContainer 建構。EntityContainer 會指定衍生自 EntitySetAssociationSet 的型別。

EntityContainer 中所定義的 EntitySet 可包含定義於個別 EntityContainer 內的 EntityType

AssociationSet 無法參考定義於個別 EntityContainer 內的 EntitySet

下列範例會顯示兩個實體類型與一個關聯型別的宣告,然後顯示 EntityContainer 搭配兩個實體集和一個關聯集的宣告。

下列結構描述包含實體宣告:

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

    <EntityType Name="Order">
        <Key>
            <PropertyRef Name="OrderId" />
        </Key>
        <Property Name="OrderId" Type="String" />
        <!--Other Properties-->
    </EntityType>

    <EntityType Name="Customer">
        <Key>
            <PropertyRef Name="CustomerId" />
        </Key>
        <Property Name="CustomerId" Type="String" />
        <!--Other Properties-->
    </EntityType>

</Schema>

下列結構描述包含關聯宣告:

<?xml version="1.0" encoding="utf-8"?>
<Schema xmlns:cg="https://schemas.microsoft.com/ado/2006/04/codegeneration"
    xmlns:edm="https://schemas.microsoft.com/ado/2006/04/edm"
    xmlns="https://schemas.microsoft.com/ado/2006/04/edm"
    Namespace="MyCompany.RelationshipTypes">

    <Using Namespace="MyCompany.EntityTypes" Alias="basicTypes"/>

    <Association Name="CustomerOrder">
        <End Type="basicTypes.Customer" Multiplicity="1" />
        <End Type="basicTypes.Order" Multiplicity="*" />
    </Association>
</Schema>

下列結構描述包含實體容器宣告:

<?xml version="1.0" encoding="utf-8"?>
<Schema xmlns:cg="https://schemas.microsoft.com/ado/2006/04/codegeneration"
    xmlns:edm="https://schemas.microsoft.com/ado/2006/04/edm"
    xmlns="https://schemas.microsoft.com/ado/2006/04/edm"
    Namespace="MyCompany.ContainerType">

    <EntityContainer name="ContainerOne">
        <Using Namespace="MyCompany.EntityTypes" Alias="basicTypes"/>
        <Using Namespace="MyCompany.RelationshipTypes" Alias="relnTypes"/>

        <EntitySet Name="CustomerSet" EntityType="basicTypes.Customer"/>
        <EntitySet Name="OrderSet" EntityType="basicTypes.Order"/>

        <AssociationSet Name="CustomerOrderSet" Association="relnTypes.CustomerOrder">
            <End EntitySet="CustomerSet" Role="Orders"/>
            <End EntitySet="OrderSet" Role="OrderedBy"/>
        </AssociationSet>
    </EntityContainer>
</Schema>

另請參閱

概念

關聯 (EDM)

其他資源

結構描述和對應規格 (Entity Framework)