EntitySet 要素 (CSDL)
概念スキーマ定義言語の EntitySet 要素は、エンティティ型のインスタンス、およびそのエンティティ型から派生した任意の型のインスタンスの論理コンテナーです。エンティティ型とエンティティ セットの間のリレーションシップは、リレーショナル データベースの行とテーブルの間のリレーションシップと似ています。エンティティ型は、行と同様に関連データのセットを定義し、エンティティ セットには、テーブルと同様に、その定義のインスタンスが含まれます。エンティティ セットは、エンティティ型のインスタンスをグループ化するための構造を提供します。これにより、データ ソース内の関連するデータ構造に、エンティティ型のインスタンスをマッピングできるようになります。詳細については、「EntityContainerMapping 要素 (MSL)」および「EntitySetMapping 要素 (MSL)」を参照してください。
特定のエンティティ型に対して複数のエンティティ セットを定義できます。
注意
Entity Data Model デザイナー (エンティティ デザイナー) では、型ごとに複数のエンティティ セットを含んでいる概念モデルはサポートされません。
EntitySet 要素には、次の子要素をここに示す順序で含めることができます。
Documentation 要素 (0 個または 1 個の要素を含めることができます)。
Annotation 要素 (0 個以上の要素を含めることができます)。
適用可能な属性
EntitySet 要素に適用できる属性を次の表に示します。
属性名 |
必須 |
値 |
---|---|---|
Name |
はい |
エンティティ セットの名前。 |
EntityType |
はい |
エンティティ型の完全修飾名。そのインスタンスは、エンティティ セットに格納されます。 |
注意
EntitySet 要素には、任意の数の annotation 属性 (カスタム XML 属性) を適用できます。ただし、カスタム属性は CSDL 用に予約されたどの XML 名前空間にも属さない場合があります。カスタム属性の完全修飾名は一意である必要があります。
例
次の例は、3 つの EntitySet 要素を持つ EntityContainer 要素を示しています。
<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>
型ごとに複数のエンティティ セット (Multiple-Entity-Sets-per-Type: MEST) を定義できます。次の例は、Book エンティティ型の 2 つのエンティティ セットを持つエンティティ コンテナーを定義します。
<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>