Entity Data Model: spazi dei nomi

Uno spazio dei nomi nell’Entity Data Model (EDM) è un contenitore astratto per i tipi di entità, i tipi complessi e le 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 usa un linguaggio specifico di dominio (DSL) denominato Conceptual Schema Definition Language (CSDL) per definire i modelli concettuali. Nel codice CSDL seguente viene usato 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 usando il nome completo (ExtendedBooksModel.Address), a indicare che questo tipo è definito nello spazio dei nomi ExtendedBooksModel.

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

Vedi anche