Entity Data Model: spazi dei nomi
Uno spazio dei nomi in Entity Data Model (EDM) è un contenitore astratto per tipi di entità, tipi complessi e associazioni. Gli spazi dei nomi in EDM sono analoghi agli spazi dei nomi in un linguaggio di programmazione: forniscono il contesto per gli oggetti che contengono e un modo per distinguere gli oggetti con lo stesso nome (ma contenuti in spazi dei nomi diversi).
Esempio
ADO.NET Entity Framework utilizza un linguaggio specifico di dominio detto CSDL (Conceptual Schema Definition Language) per definire i modelli concettuali. Nel codice CSDL seguente viene utilizzato uno spazio dei nomi per identificare un tipo definito in un modello concettuale diverso. Nell'esempio viene definito un tipo di entità (Publisher) che dispone di una proprietà di tipo complesso (Address) importata dallo spazio dei nomi ExtendedBooksModel. Si noti che l'elemento Using indica che è stato importato uno spazio dei nomi. Si noti inoltre il tipo della proprietà Address viene definito utilizzando il nome completo (ExtendedBooksModel.Address), a indicare che questo tipo è definito nello spazio dei nomi ExtendedBooksModel.
<Schema xmlns="https://schemas.microsoft.com/ado/2008/09/edm"
xmlns:cg="https://schemas.microsoft.com/ado/2006/04/codegeneration"
xmlns:store="https://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>