Entity Data Model: 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 stellen den Kontext für die Objekte bereit, die sie enthalten, und sie bieten eine Möglichkeit, Objekte mit dem gleichen Namen (die aber in verschiedenen Namespaces enthalten sind) eindeutig zu bestimmen.
Beispiel
Das ADO.NET Entity Framework verwendet eine domänenspezifische Sprache (DSL) mit der Bezeichnung „konzeptionelle Schemadefinitionssprache“ (CSDL), um konzeptionelle Modelle zu definieren. Der folgende CSDL-Code identifiziert mithilfe eines Namespace einen Typ, der in einem anderen konzeptionellen Modell definiert ist. Im Beispiel wird ein Entitätstyp (Publisher
) definiert, der über eine komplexe Typeigenschaft (Address
) verfügt, 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 mit dem vollqualifizierten Namen (ExtendedBooksModel.Address
) definiert wird, der angibt, dass dieser Typ im ExtendedBooksModel
-Namespace definiert wird.
<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>