Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um conjunto de associações é um contêiner lógico para instâncias de associação do mesmo tipo. Um conjunto de associações não é um constructo de modelagem de dados; ou seja, não descreve a estrutura de dados ou relações. Em vez disso, um conjunto de associações fornece um constructo para um ambiente de hospedagem ou armazenamento (como o common language runtime ou um banco de dados do SQL Server) para agrupar instâncias de associação para que possam ser mapeadas para um armazenamento de dados.
Um conjunto de associações é definido em um contêiner de entidade, que é um agrupamento lógico de conjuntos de entidades e conjuntos de associação.
Uma definição para um conjunto de associações contém as seguintes informações:
O nome de conjunto de associações. (Obrigatória)
A associação de que irá conter instâncias. (Obrigatória)
Exemplo
O diagrama abaixo mostra um modelo conceitual com duas associações: PublishedBye WrittenBy. Embora as informações sobre conjuntos de associação não sejam transmitidas no diagrama, o próximo diagrama mostra um exemplo de conjuntos de associações e conjuntos de entidades com base nesse modelo.
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. Bi no conjunto de entidades Books representa uma instância do tipo de entidade Book durante a execução. Da mesma forma, o Pj representa uma Publisher instância no Publishers conjunto de entidades. BiPj representa uma instância da PublishedBy associação no conjunto de PublishedBy associações.
O ADO.NET Entity Framework usa uma DSL (linguagem específica do domínio) chamada CSDL (linguagem de definição de esquema conceitual) para definir modelos conceituais. O CSDL a seguir define um contêiner de entidade com um conjunto de associações para cada associação no diagrama acima. Observe que o nome e a associação de cada conjunto de associações são definidos usando atributos 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>
É possível definir vários conjuntos de associações pela associação, como há dois conjuntos de associações compartilham a extremidade do conjunto de associações. O CSDL a seguir define um contêiner de entidade com dois conjuntos de associação para a WrittenBy associação. 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.
<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>