facet
Aspekt służy do dodawania szczegółów do definicji właściwości typu pierwotnego. Definicja właściwości zawiera informacje o typie właściwości, ale często jest to konieczne. Na przykład typ jednostki w modelu koncepcyjnym może mieć właściwość typu String
, którego wartość nie może być ustawiona na wartość null. Aspekty umożliwiają określenie tego poziomu szczegółowości.
W poniższej tabeli opisano aspekty obsługiwane w programie EDM.
Uwaga
Dokładne wartości i zachowania aspektów są określane przez środowisko uruchomieniowe korzystające z implementacji EDM.
Aspekt | opis | Dotyczy |
---|---|---|
Collation |
Określa sekwencję sortowania (lub sekwencję sortowania), która ma być używana podczas wykonywania operacji porównywania i porządkowania wartości właściwości. | String |
ConcurrencyMode |
Wskazuje, że wartość właściwości powinna być używana na potrzeby optymistycznych testów współbieżności. | Wszystkie właściwości typu pierwotnego |
Default |
Określa wartość domyślną właściwości, jeśli nie podano żadnej wartości podczas tworzenia wystąpienia. | Wszystkie właściwości typu pierwotnego |
FixedLength |
Określa, czy długość wartości właściwości może się różnić. | Binary , String |
MaxLength |
Określa maksymalną długość wartości właściwości. | Binary , String |
Nullable |
Określa, czy właściwość może mieć wartość null. | Wszystkie właściwości typu pierwotnego |
Precision |
W przypadku właściwości typu Decimal określa liczbę cyfr, które może mieć wartość właściwości. W przypadku właściwości typu Time , DateTime i DateTimeOffset określa liczbę cyfr dla części ułamkowej sekund wartości właściwości. |
DateTime , , DateTimeOffset , Decimal , , Time |
Scale |
Określa liczbę cyfr po prawej stronie punktu dziesiętnego dla wartości właściwości. | Dziesiętne |
Unicode |
Wskazuje, czy wartość właściwości jest przechowywana jako Unicode. | String |
Przykład
ADO.NET Entity Framework używa języka specyficznego dla domeny (DSL) nazywanego koncepcyjnym językiem definicji schematu (CSDL) do definiowania modeli koncepcyjnych. Poniższy plik CSDL definiuje Book
typ jednostki. Należy pamiętać, że aspekty są implementowane jako atrybuty XML. Wartości aspektów wskazują, że żadna właściwość nie może być ustawiona na wartość null, a Scale
właściwość i Precision
Revision
jest ustawiona na 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>