Aracılığıyla paylaş


entity set

Varlık kümesi, bir varlık türünün örnekleri ve bu varlık türünden türetilen herhangi bir türün örnekleri için mantıksal bir kapsayıcıdır. (Türetilmiş türler hakkında bilgi için bkz. Varlık Veri Modeli: Devralma.) Varlık türü ile varlık kümesi arasındaki ilişki, ilişkisel veritabanındaki bir satır ile tablo arasındaki ilişkiye benzer: Bir satır gibi, varlık türü veri yapısını açıklar ve tablo gibi varlık kümesi de belirli bir yapının örneklerini içerir. Varlık kümesi bir veri modelleme yapısı değildir; verilerin yapısını açıklamaz. Bunun yerine varlık kümesi, varlık türü örneklerini bir veri deposuna eşlenebilmeleri için gruplandırmak üzere bir barındırma veya depolama ortamı (ortak dil çalışma zamanı veya SQL Server veritabanı gibi) için bir yapı sağlar.

Varlık 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.

Varlık türü örneğinin bir varlık kümesinde var olması için aşağıdakilerin doğru olması gerekir:

  • Örneğin türü, varlık kümesinin temel aldığı varlık türüyle aynıdır veya örneğin türü varlık türünün alt türüdür.

  • Örneğin varlık anahtarı , varlık kümesi içinde benzersizdir.

  • Örnek başka bir varlık kümesinde yok.

    Not

    Aynı varlık türü kullanılarak birden çok varlık kümesi tanımlanabilir, ancak belirli bir varlık türünün örneği yalnızca bir varlık kümesinde bulunabilir.

Kavramsal modeldeki her varlık türü için bir varlık kümesi tanımlamanız gerekmez.

Örnek

Aşağıdaki diyagramda üç varlık türüne sahip kavramsal bir model gösterilmektedir: Book, Publisherve Author.

Example model with three entity types

Aşağıdaki diyagramda, yukarıda gösterilen kavramsal modeli temel alan iki varlık kümesi (Books ve Publishers) ve bir ilişkilendirme kümesi (PublishedBy) 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 Publishers bir Publisher örneği temsil eder. BiPj, ilişkilendirme kümesindeki PublishedBy ilişkilendirmenin bir örneğini PublishedBy temsil eder.

Screenshot that shows a Sets example.

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ıda gösterilen kavramsal modelde her varlık türü için bir varlık kümesine sahip bir varlık kapsayıcısı tanımlar. Her varlık kümesinin adının ve varlık türünün 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>

Tür başına birden çok varlık kümesi (MEST) tanımlamak mümkündür. Aşağıdaki CSDL, varlık türü için iki varlık kümesi içeren bir varlık kapsayıcısını Book tanımlar:

<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" />
  <AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
    <End Role="Book" EntitySet="Books" />
    <End Role="Publisher" EntitySet="Publishers" />
  </AssociationSet>
  <AssociationSet Name="BookAuthor" Association="BooksModel.BookAuthor">
    <End Role="Book" EntitySet="Books" />
    <End Role="Author" EntitySet="Authors" />
  </AssociationSet>
</EntityContainer>

Ayrıca bkz.