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. |
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. |
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
Especificación CSDL
Schema (Elemento) (CSDL)
FunctionImport (Elemento) (CSDL)
Otros recursos
Especificaciones CSDL, SSDL y MSL
ADO.NET Entity Data Model Tools
property (Entity Data Model)
facet (Entity Data Model)