facet

Una faceta se utiliza para agregar detalle a una definición de propiedad del tipo primitivo. Una definición de propiedad contiene información sobre el tipo de propiedad, pero a menudo es necesario especificar más detalles. Por ejemplo, un tipo de entidad en un modelo conceptual podría tener una propiedad de tipo String cuyo valor no se puede establecer en NULL. Las facetas permiten especificar este nivel de detalle.

En la siguiente tabla se describen las facetas que se admiten en EDM.

Nota

El entorno de tiempo de ejecución que utiliza una implementación de EDM determina los valores exactos y los comportamientos de las facetas.

Faceta Descripción Se aplica a
Collation Especifica la secuencia de intercalación (o secuencia de orden) que se va a usar cuando se realicen las operaciones de comparación y ordenación sobre los valores de la propiedad. String
ConcurrencyMode Indica que el valor de propiedad se debería utilizar para las comprobaciones de la simultaneidad optimista. Todas las propiedades de tipo primitivo
Default Especifica el valor predeterminado de la propiedad si no se proporciona ningún valor al crear las instancias. Todas las propiedades de tipo primitivo
FixedLength Especifica si la longitud del valor de propiedad puede variar. Binary, String
MaxLength Especifica la longitud máxima del valor de propiedad. Binary, String
Nullable Especifica si la propiedad puede tener un valor NULL. Todas las propiedades de tipo primitivo
Precision Para las propiedades de tipo Decimal, especifica el número de dígitos que puede tener un valor de propiedad. Para las propiedades de tipo Time, DateTime y DateTimeOffset, especifica el número de dígitos para la parte fraccionaria de los segundos del valor de propiedad. DateTime, DateTimeOffset, Decimal, Time,
Scale Especifica el número de dígitos que puede haber a la derecha del separador decimal para el valor de propiedad. Decimal
Unicode Indica si el valor de propiedad está almacenado como Unicode. String

Ejemplo

ADO.NET Entity Framework usa un lenguaje específico de dominio (DSL) denominado lenguaje de definición de esquemas conceptuales (CSDL) para definir los modelos conceptuales. En el ejemplo siguiente CSDL, se define un tipo de entidad Book. Observe que las facetas se implementan como atributos XML. Los valores de faceta indican que ninguna propiedad puede estar establecida en NULL, y que los valores Scale y Precision de la propiedad Revision están establecidos ambos en 29.

<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>

Consulte también