conjunto de entidadesentity set

Um conjunto de entidades é um contêiner lógico para instâncias de um tipo de entidade e instâncias de qualquer tipo derivado desse tipo de entidade.An entity set is a logical container for instances of an entity type and instances of any type derived from that entity type. (Para obter informações sobre tipos derivados, consulte modelo de dados de entidade: herança.) A relação entre um tipo de entidade e um conjunto de entidades é análoga à relação entre uma linha e uma tabela em um banco de dados relacional: como uma linha, um tipo de entidade descreve a estrutura de dados e, como uma tabela, um conjunto de entidades contém instâncias de uma determinada estrutura.(For information about derived types, see Entity Data Model: Inheritance.) 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 describes data structure, and, like a table, an entity set contains instances of a given structure. Um conjunto de entidades não é um dados que modelam a compilação; não descreve a estrutura de dados.An entity set is not a data modeling construct; it does not describe the structure of data. Em vez disso, um conjunto de entidades fornece uma compilação para um ambiente de hospedagem ou de armazenamento (como Common Language Runtime ou um base de dados do SQL Server) instâncias de tipo de entidade do grupo de modo que eles possam ser mapeadas em um armazenamento de dados.Instead, an entity set provides a construct for a hosting or storage environment (such as the common language runtime or a SQL Server database) to group entity type instances so that they can be mapped to a data store.

Um conjunto de entidades é definido em um contêiner de entidade, que é um agrupamento lógico de conjuntos de entidades e conjuntos de Associação.An entity set is defined within an entity container, which is a logical grouping of entity sets and association sets.

Para uma instância do tipo de entidade existe em um conjunto de entidades, o seguinte deve ser verdadeira:For an entity type instance to exist in an entity set, the following must be true:

  • O tipo de qualquer instância é o mesmo como o tipo de objeto no qual o conjunto de entidades é baseado, ou o tipo de instância é um subtipo do tipo de objeto.The type of the instance is either the same as the entity type on which the entity set is based, or the type of the instance is a subtype of the entity type.

  • A chave de entidade para a instância é exclusiva dentro do conjunto de entidades.The entity key for the instance is unique within the entity set.

  • A instância não existir em qualquer outro conjunto de entidades.The instance does not exist in any other entity set.

    Observação

    Os vários conjuntos de entidades podem ser definidos usando o mesmo tipo de entidade, mas uma instância de um tipo de dado entidade só pode existir em um conjunto de entidades.Multiple entity sets can be defined using the same entity type, but an instance of a given entity type can only exist in one entity set.

Você não precisa definir um conjunto de entidades para cada tipo de entidade em um modelo conceitual.You do not have to define an entity set for each entity type in a conceptual model.

ExemploExample

O diagrama a seguir mostra um modelo conceitual com três tipos de entidade: Book, Publisher, e Author.The diagram below shows a conceptual model with three entity types: Book, Publisher, and Author.

Modelo de exemplo com três tipos de entidade

A seguir temos de diagrama dois conjuntos de entidades (Books e Publishers) e um conjunto de associações (PublishedBy) com base no modelo conceitual mostrado acima.The following diagram shows two entity sets (Books and Publishers) and an association set (PublishedBy) based on the conceptual model shown above. Bi no Books conjunto de entidades representa uma instância do Book tipo de entidade em tempo de execução.Bi in the Books entity set represents an instance of the Book entity type at run time. Da mesma forma, PJ representa uma Publisher instância no Publishers conjunto de entidades.Similarly, Pj represent a Publisher instance in the Publishers entity set. BiPj representa uma instância da PublishedBy associação no conjunto de PublishedBy associação.BiPj represents an instance of the PublishedBy association in the PublishedBy association set.

Captura de tela que mostra um exemplo de conjuntos.

O Entity Framework ADO.net usa uma DSL (linguagem específica de domínio) chamadaCSDL(linguagem de definição de esquema conceitual) para definir modelos conceituais.The ADO.NET Entity Framework uses a domain-specific language (DSL) called conceptual schema definition language (CSDL) to define conceptual models. CSDL seguir define um contêiner de entidade com um conjunto de entidades para cada tipo de entidade no modelo conceitual mostrado acima.The following CSDL defines an entity container with one entity set for each entity type in the conceptual model shown above. Observe que o nome e o tipo de entidade para cada conjunto de entidades são definidos usando atributos XML.Note that the name and entity type for each entity set are defined using XML attributes.

<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>

É possível definir vários conjuntos de entidades por tipo (MEST).It is possible to define multiple entity sets per type (MEST). CSDL seguir define um contêiner de entidade com dois conjuntos de entidades para o tipo de entidade de Book :The following CSDL 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>

Consulte tambémSee also