Gezinti özelliği
Gezinti özelliği, bir ilişkilendirmenin bir ucundan diğer ucuna gezintiye olanak tanıyan bir varlık türündeki isteğe bağlı bir özelliktir. Diğer özelliklerden farklı olarak, gezinti özellikleri veri taşımaz.
Gezinti özelliği tanımı aşağıdakileri içerir:
Bir ad. (Gerekli)
Gezinen ilişkilendirme. (Gerekli)
Gezinen ilişkilendirmenin uçları. (Gerekli)
Gezinti özellikleri, ilişkilendirmenin sonundaki her iki varlık türünde de isteğe bağlıdır. İlişkilendirmenin sonunda bir varlık türünde gezinti özelliği tanımlarsanız, ilişkilendirmenin diğer ucundaki varlık türünde bir gezinti özelliği tanımlamanız gerekmez.
Gezinti özelliğinin veri türü, uzak ilişkilendirme ucunun çokluğu tarafından belirlenir. Örneğin, varlık türünde bir gezinti özelliği OrdersNavProp
olduğunu Customer
ve ile Order
arasında Customer
bire çok ilişkisine gider. Gezinti özelliği için uzak ilişkilendirme sonu çok sayıda (*) olduğundan, veri türü bir koleksiyondur (of Order
). Benzer şekilde, varlık türünde bir gezinti özelliği CustomerNavProp
varsa Order
, uzak ucun çokluğu bir (1) olduğundan veri türü Customer
olacaktır.
Örnek
Aşağıdaki diyagramda üç varlık türüne sahip kavramsal bir model gösterilmektedir: Book
, Publisher
ve Author
. ve gezinti özellikleri Publisher
Authors
, Book varlık türünde tanımlanır. Gezinti özelliği Books
hem Publisher varlık türünde Author
hem de varlık türünde tanımlanır.
ADO.NET Entity Framework, kavramsal modelleri tanımlamak için kavramsal şema tanım dili (CSDL) olarak adlandırılan etki alanına özgü bir dil (DSL) kullanır. Aşağıdaki CSDL, yukarıdaki diyagramda gösterilen varlık türünü tanımlar Book
:
<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>
XML öznitelikleri, gezinti özelliğini tanımlamak için gereken bilgileri iletmek için kullanılır: özniteliği Name
özelliğin adını içerir, Relationship
gezindiğinden ilişkilendirmenin adını içerir ve FromRole
ToRole
ilişkilendirmenin uçlarını içerir.