Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

Annotation (Elementos) (CSDL)

Los elementos Annotation en el lenguaje de definición de esquemas conceptuales (CSDL) son los elementos XML personalizados del modelo conceptual. Además de tener una estructura XML válida, lo siguiente debe ser verdadero para los elementos Annotation:

  • Los elementos Annotation no deben estar en un espacio de nombres XML que esté reservado para CSDL.

  • Más de un elemento Annotation puede ser un elemento secundario de un elemento CSDL determinado.

  • Los nombres completos de dos elementos Annotation cualesquiera no deben ser los mismos.

  • Los elementos Annotation deben aparecer después de todos los demás elementos secundarios de un elemento CSDL determinado.

Los elementos Annotation pueden utilizarse para proporcionar metadatos adicionales sobre los elementos en un modelo conceptual. A partir de .NET Framework versión 4, se puede tener acceso a los metadatos contenidos en elementos Annotation en el motor en tiempo de ejecución por medio de las clases del espacio de nombres System.Data.Metadata.Edm.

En el ejemplo siguiente se muestra un elemento EntityType con un elemento Annotation (CustomElement). El ejemplo también muestra un atributo de anotación aplicado al elemento de tipo de entidad. Para obtener más información, vea Atributos de anotación (CSDL).

<Schema Namespace="SchoolModel" Alias="Self"
        xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation"
        xmlns="http://schemas.microsoft.com/ado/2008/09/edm">
  <EntityContainer Name="SchoolEntities" annotation:LazyLoadingEnabled="true">
    <EntitySet Name="People" EntityType="SchoolModel.Person" />
  </EntityContainer>
  <EntityType Name="Person" xmlns:p="http://CustomNamespace.com"
              p:CustomAttribute="Data here.">
    <Key>
      <PropertyRef Name="PersonID" />
    </Key>
    <Property Name="PersonID" Type="Int32" Nullable="false"
              annotation:StoreGeneratedPattern="Identity" />
    <Property Name="LastName" Type="String" Nullable="false"
              MaxLength="50" Unicode="true" FixedLength="false" />
    <Property Name="FirstName" Type="String" Nullable="false"
              MaxLength="50" Unicode="true" FixedLength="false" />
    <Property Name="HireDate" Type="DateTime" />
    <Property Name="EnrollmentDate" Type="DateTime" />
    <p:CustomElement>
      Custom metadata.
    </p:CustomElement>
  </EntityType>
</Schema>


El siguiente código recupera los metadatos del elemento de anotación y los escribe en la consola:

EdmItemCollection collection = new EdmItemCollection("School.csdl");
MetadataWorkspace workspace = new MetadataWorkspace();
workspace.RegisterItemCollection(collection);
EdmType contentType;
workspace.TryGetType("Person", "SchoolModel", DataSpace.CSpace, out contentType);
if (contentType.MetadataProperties.Contains("http://CustomNamespace.com:CustomElement"))
{
    MetadataProperty annotationProperty =
        contentType.MetadataProperties["http://CustomNamespace.com:CustomElement"];
    object annotationValue = annotationProperty.Value;
    Console.WriteLine(annotationValue.ToString());
}


El código anterior supone que el archivo School.csdl está en el directorio de resultados del proyecto y que se han agregado las siguientes instrucciones Imports y Using al proyecto:

using System.Data.Metadata.Edm;


Adiciones de comunidad

Mostrar: