facet

Un facet viene usato per aggiungere dettagli a una definizione di proprietà del tipo primitivo. Una definizione di proprietà contiene informazioni sul tipo di proprietà, ma spesso sono necessari altri dettagli. Un tipo di entità in un modello concettuale, ad esempio, potrebbe disporre di una proprietà di tipo String il cui valore non può essere impostato su null. I facet consentono di specificare questo livello di dettaglio.

Nella tabella seguente vengono descritti i facet supportati in EDM.

Nota

I valori e i comportamenti esatti dei facet sono determinati dall'ambiente di runtime che usa un'implementazione EDM.

Facet Descrizione Si applica a
Collation Specifica la sequenza di ordinamento da usare quando si eseguono operazioni di confronto e di ordinamento su valori della proprietà. String
ConcurrencyMode Indica che il valore della proprietà deve essere usato per le verifiche della concorrenza ottimistica. Tutte le proprietà di tipo primitivo
Default Specifica il valore predefinito della proprietà se durante la creazione di istanze non viene fornito alcun valore. Tutte le proprietà di tipo primitivo
FixedLength Specifica se la lunghezza del valore della proprietà può variare. Binary, String
MaxLength Specifica la lunghezza massima del valore della proprietà. Binary, String
Nullable Specifica se la proprietà può avere un valore null. Tutte le proprietà di tipo primitivo
Precision Per le proprietà di tipo Decimal, specifica il numero di cifre che un valore della proprietà può avere. Per le proprietà di tipo Time, DateTime e DateTimeOffset, specifica il numero di cifre per la parte frazionaria di secondi del valore della proprietà. DateTime, DateTimeOffset, Decimal, Time,
Scale Specifica il numero di cifre a destra del separatore decimale per il valore della proprietà. Decimale
Unicode Viene indicato se il valore della proprietà viene archiviato come Unicode. String

Esempio

ADO.NET Entity Framework usa un linguaggio specifico di dominio (DSL) denominato Conceptual Schema Definition Language (CSDL) per definire i modelli concettuali. Nel linguaggio CSDL seguente viene definito un tipo di entità Book. Si noti che i facet vengono implementati come attributi XML. I valori dei facet indicano che nessuna proprietà può essere impostata su null e che Scale e Precision della proprietà Revision sono entrambi impostati su 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>

Vedi anche