EntityContainer 要素 (CSDL)
概念スキーマ定義言語 (CSDL) の EntityContainer 要素は、エンティティ セット、アソシエーション セット、および関数インポートの論理コンテナーです。概念モデルのエンティティ コンテナーは、EntityContainerMapping 要素を通じてストレージ モデルのエンティティ コンテナーにマップされます。ストレージ モデルのエンティティ コンテナーは、データベースの構造を記述します。エンティティ セットはデータベースのテーブル、アソシエーション セットは外部キー、関数インポートはストアド プロシージャをそれぞれ記述します。詳細については、「EntityContainer 要素 (SSDL)」を参照してください。
EntityContainer 要素は、0 個または 1 個の Documentation 要素を格納することができます。Documentation 要素が存在する場合、その位置は、どの EntitySet 要素、AssociationSet 要素、および FunctionImport 要素よりも前でなければなりません。
EntityContainer 要素には、ここに示した順序で次の子要素を 0 個以上含めることができます。
EntityContainer 要素を拡張して、同じ名前空間内にある別の EntityContainer の内容を格納することができます。別の EntityContainer の内容を参照元 EntityContainer 要素に格納するには、Extends 属性の値を格納する EntityContainer 要素の名前に設定します。格納された EntityContainer 要素の子要素はすべて、参照元 EntityContainer 要素の子要素として扱われます。
適用可能な属性
Using 要素に適用できる属性を次の表に示します。
属性名 |
必須 |
値 |
---|---|---|
Name |
はい |
エンティティ コンテナー名。 |
Extends |
いいえ |
同じ名前空間内にある別のエンティティ コンテナーの名前 (名前空間の詳細については、「Schema 要素 (CSDL)」を参照してください)。 |
注意
EntityContainer 要素には、任意数の annotation 属性 (カスタム XML 属性) を適用できます。ただし、カスタム属性は CSDL 用に予約されたどの XML 名前空間にも属さない場合があります。カスタム属性の完全修飾名は一意である必要があります。
例
次の例に、3 つのエンティティ セットと 2 つのアソシエーション セットを定義する 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>