エンティティ コンテナーは、エンティティ セット、アソシエーション セット、および関数のインポートの論理グループです。
概念モデルで定義されているエンティティコンテナは、次の条件を満たしている必要があります。
各概念モデルでは、少なくとも 1 つのエンティティ コンテナーを定義する必要があります。
エンティティ コンテナーは、各概念モデル内で一意の名前を持つ必要があります。
エンティティ コンテナーは、1 つ以上の名前空間で定義されているエンティティ型または関連付けを使用するエンティティ セットまたは関連付けセットを定義できます。 詳細については、「 エンティティ データ モデル: 名前空間」を参照してください。
例
次の図は、 Book、 Publisher、 Authorの 3 種類のエンティティを持つ概念モデルを示しています。 詳細については、次の例を参照してください。
図はエンティティ コンテナー情報を伝えませんが、概念モデルではエンティティ コンテナーを定義する必要があります。 ADO.NET Entity Framework では、概念スキーマ定義言語 (CSDL) と呼ばれる DSL を使用して概念モデルを定義します。 次の CSDL は、上の図に示した概念モデルのエンティティ コンテナーを定義します。 エンティティ コンテナー名は XML 属性で定義されていることに注意してください。
<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>