Facet (Entity Data Model)
Ein Facet wird verwendet, um einer primitiven Typeigenschaftendefinition Details hinzuzufügen. Die Definition einer Eigenschaft enthält Informationen zum Eigenschaftentyp, oft sind jedoch weitere Details erforderlich. Ein Entitätstyp in einem konzeptionellen Modell könnte z. B. über eine Eigenschaft vom Typ String verfügen, deren Wert nicht auf NULL festgelegt werden kann. Mit Facets können Sie diese Detailebene angeben.
In der nachfolgenden Tabelle werden die im EDM unterstützten Facets beschrieben.
Hinweis: |
---|
Die genauen Werte und Verhalten von Facets werden von der Laufzeitumgebung bestimmt, die eine EDM-Implementierung verwendet. |
Facet | Beschreibung | Gilt für |
---|---|---|
Collation |
Gibt die bei Vergleichs- und Sortiervorgängen für Eigenschaftswerte zu verwendende Sortierreihenfolge an. |
String |
ConcurrencyMode |
Gibt an, dass der Eigenschaftswert für Prüfungen der vollständigen Parallelität verwendet werden soll. |
Alle primitiven Typeigenschaften |
Default |
Gibt den Standardwert der Eigenschaft an, wenn bei der Instanziierung kein Wert angegeben wird. |
Alle primitiven Typeigenschaften |
FixedLength |
Gibt an, ob sich die Länge des Eigenschaftswerts ändern kann. |
Binary, String |
MaxLength |
Gibt die maximale Länge des Eigenschaftswerts an. |
Binary, String |
Nullable |
Gibt an, ob die Eigenschaft über einen NULL-Wert verfügen kann. |
Alle primitiven Typeigenschaften |
Precision |
Bei Eigenschaften des Typs Decimal wird die Anzahl der Ziffern angegeben, über die ein Eigenschaftswert verfügen kann. Bei Eigenschaften der Typen Time, DateTime und DateTimeOffset wird die Anzahl der Dezimalstellen für die Sekunden des Eigenschaftswerts angegeben. |
DateTime, DateTimeOffset, Decimal, Time, |
Scale |
Gibt die Anzahl der Dezimalstellen für den Eigenschaftswert an. |
Decimal |
Unicode |
Gibt an, ob der Eigenschaftswert als Unicode gespeichert wird. |
String |
Beispiel
Das ADO.NET Entity Framework verwendet eine domänenspezifische Sprache (DSL) mit der Bezeichnung konzeptionelle Schemadefinitionssprache (CSDL), um konzeptionelle Modelle zu definieren. Die folgende CSDL definiert einen Book-Entitätstyp. Beachten Sie, dass Facets als XML-Attribute implementiert werden. Die Facetwerte geben an, dass keine Eigenschaft auf NULL festgelegt werden kann, und dass Scale und Precision der Revision-Eigenschaft jeweils auf 29 festgelegt werden.
<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>