Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İlişki kümesi, aynı türdeki ilişkilendirme örnekleri için mantıksal bir kapsayıcıdır. İlişki kümesi bir veri modelleme yapısı değildir; diğer bir ifadeyle, verilerin veya ilişkilerin yapısını açıklamaz. Bunun yerine, ilişkilendirme kümesi, bir veri deposuna eşlenebilmeleri için ilişkilendirme örneklerini gruplandırmak için barındırma veya depolama ortamı (ortak dil çalışma zamanı veya SQL Server veritabanı gibi) için bir yapı sağlar.
İlişki kümesi, varlık kümelerinin ve ilişkilendirme kümelerinin mantıksal gruplandırmalarından oluşan bir varlık kapsayıcısı içinde tanımlanır.
İlişkilendirme kümesinin tanımı aşağıdaki bilgileri içerir:
İlişkilendirme kümesi adı. (Gerekli)
İçerisine örneklerin dahil olacağı ilişki. (Gerekli)
Örnek
Aşağıdaki diyagramda iki ilişkilendirmeye sahip kavramsal bir model gösterilmektedir: PublishedBy, ve WrittenBy. İlişkilendirme kümeleri hakkındaki bilgiler diyagramda aktarılmasa da, sonraki diyagramda bu modeli temel alan ilişkilendirme kümeleri ve varlık kümeleri örneği gösterilir.
Aşağıdaki örnekte, yukarıda gösterilen kavramsal modeli temel alan bir ilişkilendirme kümesi (PublishedBy) ve iki varlık kümesi (Books ve Publishers) gösterilmektedir. Varlık kümesindeki Books bi, çalışma zamanında varlık türünün bir örneğini Book temsil eder. Benzer şekilde, Pj varlık kümesindeki Publisher bir Publishers örneği temsil eder. BiPj, PublishedBy ilişkilendirme kümesindeki PublishedBy ilişkilendirmenin bir örneğini temsil eder.
ADO.NET Entity Framework, kavramsal modelleri tanımlamak için kavramsal şema tanım dili (CSDL) adlı etki alanına özgü bir dil (DSL) kullanır. Aşağıdaki CSDL, yukarıdaki diyagramdaki her ilişki için bir ilişki kümesi içeren bir varlık kapsayıcısını tanımlar. Her ilişkilendirme kümesinin adının ve ilişkilendirmesinin XML öznitelikleri kullanılarak tanımlandığını unutmayın.
<EntityContainer Name="BooksContainer" >
<EntitySet Name="Books" EntityType="BooksModel.Book" />
<EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
<EntitySet Name="Authors" EntityType="BooksModel.Author" />
<AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
<End Role="Book" EntitySet="Books" />
<End Role="Publisher" EntitySet="Publishers" />
</AssociationSet>
<AssociationSet Name="WrittenBy" Association="BooksModel.WrittenBy">
<End Role="Book" EntitySet="Books" />
<End Role="Author" EntitySet="Authors" />
</AssociationSet>
</EntityContainer>
İlişkilendirme kümesi bitişini paylaşan iki ilişkilendirme kümesi olmadığı sürece, ilişkilendirme başına birden çok ilişkilendirme kümesi tanımlamak mümkündür. Aşağıdaki CSDL, WrittenBy ilişkilendirmesi için iki ilişkilendirme kümesi içeren bir varlık kapsayıcısını tanımlar.
Book ve Author varlık türleri için birden çok varlık kümesi tanımlandığını ve hiçbir ilişkilendirme kümesinin bir sonu paylaşmadığını fark edin.
<EntityContainer Name="BooksContainer" >
<EntitySet Name="Books" EntityType="BooksModel.Book" />
<EntitySet Name="FictionBooks" EntityType="BooksModel.Book" />
<EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
<EntitySet Name="Authors" EntityType="BooksModel.Author" />
<EntitySet Name="FictionAuthors" EntityType="BooksModel.Author" />
<AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
<End Role="Book" EntitySet="Books" />
<End Role="Publisher" EntitySet="Publishers" />
</AssociationSet>
<AssociationSet Name="WrittenBy" Association="BooksModel.WrittenBy">
<End Role="Book" EntitySet="Books" />
<End Role="Author" EntitySet="Authors" />
</AssociationSet>
<AssociationSet Name="FictionWrittenBy" Association="BooksModel.WrittenBy">
<End Role="Book" EntitySet="FictionBooks" />
<End Role="Author" EntitySet="FictionAuthors" />
</AssociationSet>
</EntityContainer>