Share via


Entitätencontainer (EDM)

Im Entitätsdatenmodell (EDM) ist ein EntityContainer eine logische Gruppierung von Entitätenmengen und Zuordnungssätzen. Da das Programmiermodell als CSDL-Schema aufgebaut ist, handelt es sich bei einem EntityContainer um die Spezifikation eines Namespace im definierten Objektmodell. Im SSDL-Schema (Store Schema Definition Language, Datenspeicherschema-Definitionssprache) gibt der EntityContainer den Speichercontainer an, der die Daten für die auf der Grundlage dieses Modells erstellten Anwendungen dauerhaft speichert. Dabei kann es sich um eine Datenbank in einem Managementsystem für relationale Datenbanken (Relational Database Management System, RDBMS) oder um eine andere Technologie handeln.

Der EntityContainer legt den Bereich von Entitäten und Beziehungen fest. Alle Typen im EDM werden im Bereich eines EntityContainer-Namespace definiert. Instanzen von EntitySet und AssociationSet werden im Bereich eines EntityContainer erstellt. Ebenso werden die Instanzen eines EntityType oder einer Association im Bereich eines EntitySet oder eines AssociationSet erstellt.

In der XML-Hierarchie ist das EntityContainer-Element vom Schema-Element getrennt, obwohl der EntityContainer in einem Schema definiert ist. Dies ist beim Mapping des EntityContainer zu einem Speicher wichtig. Der vollqualifizierte Name des EntityContainer in der Mapping-Datei enthält nicht den Namen des Schemanamespace.

Ein EntityContainer wird vom grundlegenden EntityContainer-Konstrukt abgeleitet, das vom EDM bereitgestellt wird. Der EntityContainer gibt Typen an, die von EntitySet und AssociationSet abgeleitet sind.

Ein EntitySet, das in einem EntityContainer definiert ist, kann einen EntityType enthalten, der in einem anderen EntityContainer definiert ist.

Ein AssociationSet kann nicht auf ein EntitySet verweisen, das in einem anderen EntityContainer definiert ist.

Das folgende Beispiel zeigt neben den Deklarationen zweier Entitätstypen und eines Zuordnungstyps die Deklaration eines EntityContainer mit zwei Entitätenmengen und einem Zuordnungssatz.

Das folgende Schema enthält die Entitätsdeklarationen:

<?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>

Das folgende Schema enthält die Zuordnungsdeklarationen:

<?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>

Das folgende Schema enthält die Deklaration des Entitätencontainers:

<?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>

Siehe auch

Konzepte

Zuordnung (EDM)

Weitere Ressourcen

Schemas und Mappingspezifikation (Entity Framework)