Condividi tramite


insieme di associazioni

Un set di associazioni è un contenitore logico per le istanze di associazione dello stesso tipo. Un set di associazioni non è un costrutto di modellazione dei dati; ovvero non descrive la struttura dei dati o delle relazioni. Un set di associazioni fornisce invece un costrutto per un ambiente di hosting o di archiviazione , ad esempio Common Language Runtime o un database di SQL Server, per raggruppare le istanze di associazione in modo che possano essere mappate a un archivio dati.

Un set di associazioni viene definito all'interno di un contenitore di entità, ovvero un raggruppamento logico di set di entità e set di associazioni.

Una definizione per un set di associazioni contiene le informazioni seguenti:

Esempio

Il diagramma seguente illustra un modello concettuale con due associazioni: PublishedBye WrittenBy. Anche se le informazioni sui set di associazioni non vengono trasmesse nel diagramma, il diagramma successivo mostra un esempio di set di associazioni e set di entità basati su questo modello.

Modello di esempio con tre tipi di entità

Nell'esempio seguente viene illustrato un set di associazioni (PublishedBy) e due set di entità (Books e Publishers) in base al modello concettuale illustrato in precedenza. Bi nel set di entità rappresenta un'istanza Books del Book tipo di entità in fase di esecuzione. Analogamente, Pj rappresenta un'istanza Publisher nel Publishers set di entità. BiPj rappresenta un'istanza dell'associazione PublishedBy nel PublishedBy set di associazioni.

Screenshot che mostra un esempio di set.

Il ADO.NET Entity Framework usa un linguaggio specifico del dominio (DSL) denominato linguaggio CSDL (Conceptual Schema Definition Language) per definire modelli concettuali. Il file CSDL seguente definisce un contenitore di entità con un set di associazioni per ogni associazione nel diagramma precedente. Si noti che il nome e l'associazione per ogni set di associazioni vengono definiti usando attributi 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>

È possibile definire più set di associazioni per associazione, purché nessun set di associazioni condivida un termine del set di associazioni. Il file CSDL seguente definisce un contenitore di entità con due set di associazioni per l'associazione WrittenBy . Si noti che sono stati definiti più set di entità per i tipi di entità Book e Author e che nessun set di associazioni condivide un'estremità del set di associazioni.

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

Vedere anche