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>