fasett
En aspekt används för att lägga till detaljer i en egenskapsdefinition av primitiv typ. En egenskapsdefinition innehåller information om egenskapstypen, men ofta krävs mer information. En entitetstyp i en konceptmodell kan till exempel ha en egenskap av typen String
vars värde inte kan anges till null. Med fasetter kan du ange den här detaljnivån.
I tabellen nedan beskrivs de fasetter som stöds i EDM.
Kommentar
De exakta värdena och beteendena för fasetter bestäms av körningsmiljön som använder en EDM-implementering.
Aspekt | beskrivning | Gäller för |
---|---|---|
Collation |
Anger den sorteringssekvens (eller sorteringssekvens) som ska användas när du utför jämförelse- och sorteringsåtgärder på värden för egenskapen. | String |
ConcurrencyMode |
Anger att värdet för egenskapen ska användas för optimistiska samtidighetskontroller. | Alla primitiva typegenskaper |
Default |
Anger standardvärdet för egenskapen om inget värde anges vid instansiering. | Alla primitiva typegenskaper |
FixedLength |
Anger om längden på egenskapsvärdet kan variera. | Binary , String |
MaxLength |
Anger den maximala längden på egenskapsvärdet. | Binary , String |
Nullable |
Anger om egenskapen kan ha ett null-värde. | Alla primitiva typegenskaper |
Precision |
För egenskaper av typen Decimal anger du antalet siffror som ett egenskapsvärde kan ha. För egenskaper av typen Time , DateTime och DateTimeOffset , anger antalet siffror för den del av sekunderna av egenskapsvärdet. |
DateTime , DateTimeOffset , Decimal , , , Time |
Scale |
Anger antalet siffror till höger om decimaltecknet för egenskapsvärdet. | Decimal |
Unicode |
Anger om egenskapsvärdet lagras som Unicode. | String |
Exempel
ADO.NET Entity Framework använder ett domänspecifikt språk (DSL) som kallas CSDL (Conceptual Schema Definition Language) för att definiera konceptuella modeller. Följande CSDL definierar en entitetstyp Book
. Observera att fasetter implementeras som XML-attribut. Fasetteringsvärdena anger att ingen egenskap kan anges till null och att Scale
egenskapen och Precision
Revision
är inställda på 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>