Esquema conceptual (CSDL)

El esquema conceptual es una plantilla de diseño para el modelo de objetos que utilizarán las aplicaciones generadas en Entity Data Model (EDM). El nombre del espacio de nombres declarado en el esquema conceptual será el que califique las clases de asociación y entidad en el modelo de objetos generado.

La arquitectura EDM proporciona la estructura básica de entidades y asociaciones. Los diseñadores de aplicaciones derivan entidades y asociaciones basándose en estos tipos. Los tipos definidos en el esquema conceptual se asignan a los metadatos que describen el modelo de almacenamiento.

El esquema conceptual usa un dialecto XML denominado lenguaje de definición de esquemas conceptuales (CSDL). Los metadatos de almacenamiento usan un dialecto XML denominado lenguaje de definición de esquemas de almacenamiento (SSDL).

NoteNota

Los espacios de nombres CSDL son diferentes de los espacios de nombres XML. Los espacios de nombres CSDL se utilizan para calificar totalmente los nombres de tipos de entidad y los nombres de asociaciones. Por ejemplo, cuando el lenguaje de especificación de asignaciones (MSL) hace referencia a tipos de entidad, se debe proporcionar el nombre completo. Además, cuando se generan clases, estas se crean en un espacio de nombres CLR del mismo nombre. CSDL está en el espacio de nombres XML http://schemas.microsoft.com/ado/2006/04/edm. Los dos tipos de espacios de nombres son independientes y distintos, y no se deben confundir.

Espacio de nombres y asignación

El elemento raíz del esquema conceptual es el elemento Schema. Contiene un atributo Namespace que especifica el espacio de nombres CSDL. El espacio de nombres se utiliza en la especificación de asignaciones para conectar los tipos CSDL con los metadatos de almacenamiento.

La declaración siguiente del esquema CSDL contiene el espacio de nombres que se utiliza en la especificación de asignaciones para asignar entidades y asociaciones en el modelo AdventureWorksHRModel de la aplicación de ejemplo a los metadatos de almacenamiento.

<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRModel"
        Alias="Self" 
        xmlns="http://schemas.microsoft.com/ado/2006/04/edm">

Hay una línea similar en el archivo SSDL.

<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRTarget"
        Alias="Self" 
        xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">

Los nombres de espacios de nombres que se usan en estas declaraciones reflejan los propósitos en el modelo de datos que se está creando. AdventureWorksHRModel es el modelo conceptual que se asigna en estos ejemplos al espacio de nombres de metadatos de destino AdventureWorksHRTarget.

Los elementos de contenedor de entidades en los esquemas conceptual y de almacenamiento son independientes del elemento Schema aunque sean elementos secundarios de los elementos Schema en ambos casos.

En la especificación de asignaciones, el elemento EntityContainerMapping asigna los dos objetos contenedores sin referencia a los nombre de los espacios de nombres: edm:CdmEntityContainer="HumanResources" edm:StorageEntityContainer="HumanResources". El uso de un nombre de contenedor de entidades calificado por el nombre del espacio de nombres del esquema producirá una excepción de asignación.

El encabezado siguiente del lenguaje de especificación de asignaciones (MSL) muestra la asignación entre el contenedor de entidades HumanResources en el esquema conceptual, denominado aquí CdmEntityContainer, y el de los metadatos de almacenamiento, denominado StorageEntityContainer.

<?xml version="1.0" encoding="utf-8"?>
<Mapping edm:Space="C-S" 
        xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
  <EntityContainerMapping CdmEntityContainer="HumanResources"
                         StorageEntityContainer="HumanResources">

Otros elementos del esquema CSDL se asignan de igual modo a las especificaciones SSDL en la especificación de asignaciones. Los temas de esta sección describen los tipos y elementos utilizados para implementar un modelo de objetos generado en el modelo EDM.

En esta sección

Vea también

Adiciones de comunidad

Mostrar: