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):
Elemento Documentation (cero o más elementos)
Elementos Annotation (cero o más elementos)
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 |
Sí |
Nombre de la propiedad. |
Type |
Sí |
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.
Nota
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 |
Sí |
Nombre de la propiedad. |
Type |
Sí |
Tipo del valor de propiedad. |
Nullable |
No |
True (el valor predeterminado) o False, dependiendo de si la propiedad puede tener un valor NULL.
Nota
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 >= somestring
</DefiningExpression>
</Function>
Vea también
Conceptos
Información general de Entity Framework
FunctionImport (Elemento) (CSDL)