EntitySet Element (CSDL)
The EntitySet element in conceptual schema definition language is a logical container for instances of an entity type and instances of any type that is derived from that entity type. The relationship between an entity type and an entity set is analogous to the relationship between a row and a table in a relational database. Like a row, an entity type defines a set of related data, and, like a table, an entity set contains instances of that definition. An entity set provides a construct for grouping entity type instances so that they can be mapped to related data structures in a data source. For more information, see EntityContainerMapping Element (MSL) and EntitySetMapping Element (MSL).
More than one entity set for a particular entity type may be defined.
Note
The Entity Data Model Designer (Entity Designer) does not support conceptual models that contain multiple entity sets per type.
The EntitySet element can have the following child elements (in the order listed):
Documentation Element (zero or one elements allowed)
Annotation elements (zero or more elements allowed)
Applicable Attributes
The table below describes the attributes that can be applied to the EntitySet element.
Attribute Name | Is Required | Value |
---|---|---|
Name |
Yes |
The name of the entity set. |
EntityType |
Yes |
The fully-qualified name of the entity type for which the entity set contains instances. |
Note
Any number of annotation attributes (custom XML attributes) may be applied to the EntitySet element. However, custom attributes may not belong to any XML namespace that is reserved for CSDL. The fully-qualified names for any two custom attributes cannot be the same.
Example
The following example shows an EntityContainer element with three EntitySet elements:
<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>
It is possible to define multiple entity sets per type (MEST). The following example defines an entity container with two entity sets for the Book entity type:
<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>
See Also
Concepts
Entity Framework Overview
CSDL Specification
EntityContainer Element (CSDL)
Other Resources
CSDL, SSDL, and MSL Specifications
ADO.NET Entity Data Model Tools
entity set (Entity Data Model)