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
, Publisher
ve Author
.
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.
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>