Property (Elemento) (CSDL)

En el lenguaje de definición de esquemas conceptuales (CSDL), el elemento Property puede ser un elemento secundario del elemento EntityType, el elemento ComplexType o el elemento RowType.

Aplicaciones de elemento EntityType y ComplexType

Los elementos Property (como elementos secundarios de los elementos ComplexType o EntityType) definen la forma y características de los datos que contendrá una instancia de tipo de entidad o de tipo complejo.Las propiedades en un modelo conceptual son análogas a las propiedades que se definen en una clase.Del mismo modo que las propiedades en una clase definen la forma de la clase y proporcionan información sobre los objetos, las propiedades en un modelo conceptual definen la forma de un tipo de entidad y proporcionan información sobre las instancias del tipo de entidad.

El elemento Property puede tener los elementos secundarios siguientes (en el orden mostrado):

Las siguientes facetas se pueden aplicar a un elemento Property: Nullable, DefaultValue, MaxLength, FixedLength, Precision, Scale, Unicode, Collation, ConcurrencyMode.Las facetas son atributos XML que proporcionan información sobre cómo los valores de propiedad se almacenan en el almacén de datos.Para obtener más información, vea Facetas (CSDL).

Nota

Las facetas solo se aplican a las propiedades de tipo EDMSimpleType.Para obtener más información, vea Tipos de modelos conceptuales (CSDL).

Atributos aplicables

En la tabla siguiente se describen los atributos que se pueden aplicar al elemento Property.

Nombre de atributo

Es necesario

Valor

Name

Nombre de la propiedad.

Type

Tipo del valor de propiedad.El tipo de valor de propiedad debe ser EDMSimpleType o un tipo complejo (expresado mediante un nombre completo) que esté dentro del ámbito del modelo.Para obtener más información, vea Tipos de modelos conceptuales (CSDL).

Nullable

No

True (el valor predeterminado) o False, dependiendo de si la propiedad puede tener un valor NULL.

NotaNota
En la versión de CSDL indicada por el espacio de nombres https://schemas.microsoft.com/ado/2006/04/edm, una propiedad de tipo complejo debe tener Nullable="False".

DefaultValue

No

Valor predeterminado de la propiedad.

MaxLength

No

Longitud máxima del valor de propiedad.

FixedLength

No

True o False dependiendo de si el valor de propiedad se va a almacenar como una cadena de longitud fija.

Precision

No

Precisión del valor de propiedad.

Scale

No

Escala del valor de propiedad.

Unicode

No

True o False dependiendo de si el valor de propiedad se va a almacenar como una cadena Unicode.

Collation

No

Cadena que especifica la secuencia de intercalación que se va a usar en el origen de datos.

ConcurrencyMode

No

None (valor predeterminado) o Fixed.Si el valor se establece en Fixed, el valor de propiedad se utilizará en comprobaciones de la simultaneidad optimista.

Nota

Se puede aplicar cualquier número de atributos de anotación (atributos XML personalizados) al elemento Property.Sin embargo, es posible que los atributos personalizados no pertenezcan a ningún espacio de nombres XML reservado para CSDL.Dos atributos personalizados cualesquiera no pueden tener nombres completos idénticos.

Ejemplo

En el ejemplo siguiente se muestra un elemento EntityType con tres elementos Property y dos elementos:

<EntityType Name="Book">
  <Key>
    <PropertyRef Name="ISBN" />
  </Key>
  <Property Type="String" Name="ISBN" Nullable="false" />
  <Property Type="String" Name="Title" Nullable="false" />
  <Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
  <NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
                      FromRole="Book" ToRole="Publisher" />
  <NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
                      FromRole="Book" ToRole="Author" />
</EntityType>

En el ejemplo siguiente se muestra un elemento ComplexType con cinco elementos Property:

<ComplexType Name="Address" >
  <Property Type="String" Name="StreetAddress" Nullable="false" />
  <Property Type="String" Name="City" Nullable="false" />
  <Property Type="String" Name="StateOrProvince" Nullable="false" />
  <Property Type="String" Name="Country" Nullable="false" />
  <Property Type="String" Name="PostalCode" Nullable="false" />
</ComplexType>

Aplicación de elemento RowType

Los elementos Property (como elementos secundarios de un elemento RowType) definen la forma y características de loa datos que se pueden pasar o devolver de una función definida por modelo.Para obtener más información, vea Function (Elemento) (CSDL).

El elemento Property puede tener exactamente uno de los siguientes elementos secundarios:

El elemento Property puede tener cualquier número de elementos de anotación secundarios.

Nota

Los elementos de anotación solo se pueden emplear en modelos conceptuales en aquellas aplicaciones diseñadas para la versión 4 o posterior de .NET Framework.El espacio de nombres XML para dichos modelos es https://schemas.microsoft.com/ado/2008/09/edm.

Atributos aplicables

En la tabla siguiente se describen los atributos que se pueden aplicar al elemento Property.

Nombre de atributo

Es necesario

Valor

Name

Nombre de la propiedad.

Type

Tipo del valor de propiedad.

Nullable

No

True (el valor predeterminado) o False, dependiendo de si la propiedad puede tener un valor NULL.

NotaNota
En la versión de CSDL indicada por el espacio de nombres https://schemas.microsoft.com/ado/2006/04/edm, una propiedad de tipo complejo debe tener Nullable="False".

DefaultValue

No

Valor predeterminado de la propiedad.

MaxLength

No

Longitud máxima del valor de propiedad.

FixedLength

No

True o False dependiendo de si el valor de propiedad se va a almacenar como una cadena de longitud fija.

Precision

No

Precisión del valor de propiedad.

Scale

No

Escala del valor de propiedad.

Unicode

No

True o False dependiendo de si el valor de propiedad se va a almacenar como una cadena Unicode.

Collation

No

Cadena que especifica la secuencia de intercalación que se va a usar en el origen de datos.

Nota

Se puede aplicar cualquier número de atributos de anotación (atributos XML personalizados) al elemento Property.Sin embargo, es posible que los atributos personalizados no pertenezcan a ningún espacio de nombres XML reservado para CSDL.Dos atributos personalizados cualesquiera no pueden tener nombres completos idénticos.

Ejemplo

En el siguiente ejemplo se muestran los elementos Property usados para definir la forma del tipo de valor devuelto de una función definida por modelo.

<Function Name="LastNamesAfter">
  <Parameter Name="someString" Type="Edm.String" />
  <ReturnType>
   <CollectionType>
     <RowType>
       <Property Name="FirstName" Type="Edm.String" Nullable="false" />
       <Property Name="LastName" Type="Edm.String" Nullable="false" />
     </RowType>
   </CollectionType>
  </ReturnType>
  <DefiningExpression>
            SELECT VALUE ROW(p.FirstName, p.LastName)
            FROM SchoolEntities.People AS p
            WHERE p.LastName &gt;= somestring
  </DefiningExpression>
</Function>

Vea también

Conceptos

Información general de Entity Framework

Especificación CSDL

Schema (Elemento) (CSDL)

propiedad

faceta

FunctionImport (Elemento) (CSDL)

Otros recursos

Especificaciones CSDL, SSDL y MSL

Herramientas de ADO.NET Entity Data Model