Partager via


Entity Data Model : Espaces de noms

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

Exemple :

Le ADO.NET Entity Framework utilise un langage spécifique au domaine (DSL) appelé langage de définition de schéma conceptuel (CSDL) pour définir des modèles conceptuels. Le code 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 ExtendedBooksModel de noms. Notez que l’élément Using indique qu’un espace de noms a été importé. Notez bien que le type de propriété Address est défini à l’aide de son nom complet (ExtendedBooksModel.Address), indiquant 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