facet
Uma faceta é usada para adicionar detalhes a uma definição de propriedade de tipo primitivo. Uma definição de propriedade contém informações sobre o tipo de propriedade, mas muitas vezes são necessários mais detalhes. Por exemplo, um tipo de entidade em um modelo conceitual pode ter uma propriedade de tipo String
cujo valor não pode ser definido como nulo. As facetas permitem especificar esse nível de detalhe.
A tabela abaixo descreve as facetas suportadas no EDM.
Nota
Os valores exatos e comportamentos das facetas são determinados pelo ambiente de tempo de execução que usa uma implementação EDM.
Faceta | Description | Aplica-se a |
---|---|---|
Collation |
Especifica a sequência de agrupamento (ou sequência de classificação) a ser usada ao executar operações de comparação e ordenação em valores da propriedade. | String |
ConcurrencyMode |
Indica que o valor da propriedade deve ser usado para verificações de simultaneidade otimistas. | Todas as propriedades de tipo primitivo |
Default |
Especifica o valor padrão da propriedade se nenhum valor for fornecido durante a instanciação. | Todas as propriedades de tipo primitivo |
FixedLength |
Especifica se o comprimento do valor da propriedade pode variar. | Binary , String |
MaxLength |
Especifica o comprimento máximo do valor da propriedade. | Binary , String |
Nullable |
Especifica se a propriedade pode ter um valor nulo. | Todas as propriedades de tipo primitivo |
Precision |
Para propriedades do tipo Decimal , especifica o número de dígitos que um valor de propriedade pode ter. Para propriedades do tipo Time , DateTime , e DateTimeOffset , especifica o número de dígitos para a parte fracionária de segundos do valor da propriedade. |
DateTime , DateTimeOffset , Decimal , Time , |
Scale |
Especifica o número de dígitos à direita da vírgula decimal para o valor da propriedade. | Decimal |
Unicode |
Indica se o valor da propriedade é armazenado como Unicode. | String |
Exemplo
O ADO.NET Entity Framework usa uma linguagem específica de domínio (DSL) chamada linguagem de definição de esquema conceitual (CSDL) para definir modelos conceituais. A CSDL a seguir define um tipo de Book
entidade. Observe que as facetas são implementadas como atributos XML. Os valores de faceta indicam que nenhuma propriedade pode ser definida como null e que o Scale
e Precision
da Revision
propriedade são cada um definido 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>