Compartir a través de


Entity Data Model: Espacios de nombres

Un espacio de nombres en Entity Data Model (EDM) es un contenedor abstracto para tipos de entidad, tipos complejos y asociaciones. Los espacios de nombres de EDM son similares a los espacios de nombres en un lenguaje de programación: proporcionan contexto para los objetos que contienen y proporcionan una manera de desambiguar los objetos que tienen el mismo nombre (pero están contenidos en espacios de nombres diferentes).

Ejemplo

El ADO.NET Entity Framework usa un lenguaje específico del dominio (DSL) denominado lenguaje de definición de esquema conceptual (CSDL) para definir modelos conceptuales. El código CSDL siguiente usa un espacio de nombres para identificar un tipo definido en un modelo conceptual diferente. En el ejemplo se define un tipo de entidad (Publisher) que tiene una propiedad de tipo complejo (Address) que se importa desde el ExtendedBooksModel espacio de nombres. Tenga en cuenta que el elemento Using indica que se ha importado un namespace. Tenga en cuenta también que el tipo de la Address propiedad se define mediante su nombre completo (ExtendedBooksModel.Address), lo que indica que este tipo se define en el ExtendedBooksModel espacio de nombres.

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

Consulte también