facet

Uma faceta é usada para adicionar o detalhe a uma definição de propriedade do tipo primitivo. Uma definição de propriedade contém informações sobre o tipo de propriedade, mas, geralmente, outros detalhes são necessários. Por exemplo, um tipo de entidade em um modelo conceitual pode ter uma propriedade do tipo String cujo valor pode não ser definido como nulo. As facetas permitem que você especifique esse nível de detalhe.

A tabela a seguir descreve as facetas que são suportadas em EDM.

Observação

Os valores precisos e os comportamentos de facetas são determinados pelo ambiente de tempo de execução usando uma implementação de EDM.

Faceta Descrição Aplica-se a
Collation Especifica a sequência de agrupamento (ou sequência de classificação) a ser usadas para executar a comparação e em ordenação operações em valores de propriedade. String
ConcurrencyMode Indica que o valor da propriedade deve ser usado para verificação de simultaneidade otimista. As propriedades do tipo primitivo
Default Especifica o valor de propriedade padrão se nenhum valor é fornecido em cima de instanciação. As propriedades do tipo primitivo
FixedLength Especifica se o comprimento do valor da propriedade pode variar. Binary, String
MaxLength Especifica o comprimento máximo de valor de propriedade. Binary, String
Nullable Especifica se a propriedade pode ter um valor nulo. As propriedades do tipo primitivo
Precision Para propriedades de tipo Decimal, especifica o número de dígitos que um valor de propriedade pode ter. Para propriedades de tipo Time, DateTime, e DateTimeOffset, especifique o número de dígitos para a parte fracionária de segundos de valor de propriedade. DateTime, DateTimeOffset, Decimal, Time,
Scale Especifica o número de dígitos à direita do ponto decimal para o valor da propriedade. Decimal
Unicode Indica se o valor da propriedade é armazenado como Unicode. String

Exemplo

O Entity Framework do ADO.NET usa uma DSL (linguagem específica de domínio) chamada CSDL (linguagem de definição de esquema conceitual) para definir modelos conceituais. CSDL seguir define um tipo de entidade de Book . Observe que as facetas são implementadas como atributos XML. Os valores de aspecto indica que nenhuma propriedade pode ser definida para nulo, e que Scale e Precision de propriedade de cada Revision são definidas como 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>

Confira também