Entity Data Model : Espaces de noms

Un espace de noms dans le modèle EDM (Entity Data Model) est un conteneur abstrait pour les types d’entité, les types complexes et les associations. Les espaces de noms dans le modèle EDM sont semblables aux espaces de noms dans un langage de programmation : ils fournissent le contexte pour les objets qu'ils contiennent et offrent un moyen de lever l'ambiguïté entre les objets qui portent le même nom (mais qui sont contenus dans des espaces de noms différents).

Exemple

ADO.NET Entity Framework utilise un langage spécifique à un domaine (DSL), appelé CSDL (Conceptual Schema Definition Language), pour définir des modèles conceptuels. Le CSDL suivant utilise un espace de noms pour identifier un type défini dans un modèle conceptuel différent. L'exemple définit un type d'entité (Publisher) qui a une propriété de type complexe (Address) importée à partir de l'espace de noms ExtendedBooksModel. Notez que l'élément Using indique qu'un espace de noms a été importé. Notez également que le type de la propriété Address est défini à l'aide de son nom qualifié complet (ExtendedBooksModel.Address), ce qui indique que ce type est défini dans l'espace de noms 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>

Voir aussi