Freigeben über


Entitätsdatenmodell: Namespaces

Ein Namespace im Entity Data Model (EDM) ist ein abstrakter Container für Entitätstypen, komplexe Typen und Zuordnungen. Namespaces im EDM ähneln Namespaces in einer Programmiersprache: Sie bieten Kontext für die Objekte, die sie enthalten, und eine Möglichkeit, Objekte mit demselben Namen zu unterscheiden, die in verschiedenen Namespaces enthalten sind.

Beispiel

Das ADO.NET Entity Framework verwendet eine domänenspezifische Sprache (DSL), die als konzeptuelle Schemadefinitionssprache (CSDL) bezeichnet wird, um konzeptionelle Modelle zu definieren. Der folgende CSDL-Code verwendet einen Namespace, um einen Typ zu identifizieren, der in einem anderen konzeptionellen Modell definiert ist. Im Beispiel wird ein Entitätstyp (Publisher) definiert, der eine komplexe Typeigenschaft (Address) aufweist, die aus dem ExtendedBooksModel Namespace importiert wird. Beachten Sie, dass das Using Element angibt, dass ein Namespace importiert wurde. Beachten Sie außerdem, dass der Typ der Address Eigenschaft mithilfe des vollqualifizierten Namens (ExtendedBooksModel.Address) definiert wird, der angibt, dass dieser Typ im ExtendedBooksModel Namespace definiert ist.

  <Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm"
          xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration"
          xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator"
          Namespace="BooksModel" Alias="Self">

    <Using Namespace="BooksModel.Extended" Alias="BMExt" />
    
<EntityContainer Name="BooksContainer" >
      <EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
    </EntityContainer>
    
<EntityType Name="Publisher">
      <Key>
        <PropertyRef Name="Id" />
      </Key>
      <Property Type="Int32" Name="Id" Nullable="false" />
      <Property Type="String" Name="Name" Nullable="false" />
      <Property Type="BMExt.Address" Name="Address" Nullable="false" />
    </EntityType>
  
</Schema>

Siehe auch