właściwość
Właściwości to podstawowe bloki konstrukcyjne typów jednostek i typów złożonych. Właściwości definiują kształt i cechy danych, które będzie zawierać wystąpienie typu jednostki lub wystąpienie typu złożonego. Właściwości w modelu koncepcyjnym są analogiczne do właściwości zdefiniowanych w klasie. W ten sam sposób, w jaki właściwości klasy definiują kształt klasy i przenoszą informacje o obiektach, właściwości w modelu koncepcyjnym definiują kształt typu jednostki i przenoszą informacje o wystąpieniach typu jednostki.
Uwaga
Właściwości, zgodnie z opisem w tym temacie, różnią się od właściwości nawigacji. Aby uzyskać więcej informacji, zobacz właściwości nawigacji.
Definicja właściwości zawiera następujące informacje:
Nazwa właściwości. (Wymagane)
Typ właściwości. (Wymagane)
Zestaw aspektów. (Opcjonalne)
Właściwość może zawierać dane pierwotne (takie jak ciąg, liczba całkowita lub wartość logiczna) lub dane ustrukturyzowane (takie jak typ złożony). Właściwości typu pierwotnego są również nazywane właściwościami skalarnych. Aby uzyskać więcej informacji, zobacz Model danych jednostki: typy danych pierwotnych.
Uwaga
Typ złożony może mieć same właściwości, które są typami złożonymi.
Przykład
Na poniższym diagramie przedstawiono model koncepcyjny z trzema typami jednostek: Book
, Publisher
i Author
. Każdy typ jednostki ma kilka właściwości, chociaż informacje o typie dla każdej właściwości nie są przekazywane na diagramie. Właściwości, które są kluczami jednostki, są oznaczone jako (Klucz).
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 (jak pokazano na powyższym diagramie) i wskazuje typ i nazwę każdej właściwości przy użyciu atrybutów XML. Opcjonalny aspekt Nullable
, jest również definiowany przy użyciu atrybutu XML.
<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>
Możliwe, że jedna z właściwości pokazanych na diagramie jest właściwością typu złożonego. Na przykład właściwość typu Publisher
jednostki może być właściwością typu złożonego składającą się z kilku właściwości skalarnych, takich jak StreetAddress
, , StateOrProvince
City
, Country
, i PostalCode
.Address
Reprezentacja CSDL takiego typu złożonego byłaby następująca:
<ComplexType Name="Address" >
<Property Type="String" Name="StreetAddress" Nullable="false" />
<Property Type="String" Name="City" Nullable="false" />
<Property Type="String" Name="StateOrProvince" Nullable="false" />
<Property Type="String" Name="Country" Nullable="false" />
<Property Type="String" Name="PostalCode" Nullable="false" />
</ComplexType>