conjunto de associaçõesassociation set

Um conjunto de associação é um contêiner lógico para instâncias de Associação do mesmo tipo.An association set is a logical container for association instances of the same type. Um conjunto de associações não é um dados que modelam a compilação; isto é, não descreve a estrutura de dados ou relações.An association set is not a data modeling construct; that is, it does not describe the structure of data or relationships. Em vez disso, um conjunto de associações fornece uma compilação para um ambiente de hospedagem ou de armazenamento (como Common Language Runtime ou um base de dados SQL Server) às instâncias de associação do grupo de modo que eles possam ser mapeadas em um armazenamento de dados.Instead, an association set provides a construct for a hosting or storage environment (such as the common language runtime or a SQL Server database) to group association instances so that they can be mapped to a data store.

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

Uma definição de um conjunto de associações contém as informações a seguir:A definition for an association set contains the following information:

  • O nome de conjunto de associações.The association set name. (Obrigatória)(Required)

  • A associação de que irá conter instâncias.The association of which it will contain instances. (Obrigatória)(Required)

  • Dois conjuntos de associação terminam.Two association set ends.

ExemploExample

O diagrama a seguir mostra um modelo conceitual com duas associações: PublishedBy, e WrittenBy.The diagram below shows a conceptual model with two associations: PublishedBy, and WrittenBy. Embora informações sobre conjuntos de associações não é transmitida no diagrama, o diagrama a seguir mostra um exemplo de conjuntos de associações e conjuntos de entidades baseados nesse modelo.Although information about association sets is not conveyed in the diagram, the next diagram shows an example of association sets and entity sets based on this model.

Modelo de exemplo com três tipos de entidade

O exemplo a seguir mostra um conjunto de associações (PublishedBy) e dois conjuntos de entidades (Books e Publishers) com base no modelo conceitual mostrado acima.The following example shows an association set (PublishedBy) and two entity sets (Books and Publishers) 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 represents 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 associações para cada associação no diagrama anterior.The following CSDL defines an entity container with one association set for each association in the diagram above. Observe que o nome e a associação para cada conjunto de associações são definidos usando atributos XML.Note that the name and association for each association 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 associação por associação, desde que dois conjuntos de associação não compartilhem uma extremidade de conjunto de associação.It is possible to define multiple association sets per association, as long as no two association sets share an association set end. CSDL seguir define um contêiner de entidade com dois conjuntos de associações para associação de WrittenBy .The following CSDL defines an entity container with two association sets for the WrittenBy association. Observe que os vários conjuntos de entidades foram definidos para os tipos de entidade de Book e de Author e que nenhum conjunto de associações compartilha fim do conjunto de associações.Notice that multiple entity sets have been defined for the Book and Author entity types and that no association set shares an association set end.

<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" />
  <EntitySet Name="FictionAuthors" 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>
  <AssociationSet Name="FictionWrittenBy" Association="BooksModel.WrittenBy">
    <End Role="Book" EntitySet="FictionBooks" />
    <End Role="Author" EntitySet="FictionAuthors" />
  </AssociationSet>
</EntityContainer>

Consulte tambémSee also