Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Un set di entità è un contenitore logico per le istanze di un tipo di entità e istanze di qualsiasi tipo derivato da tale tipo di entità. Per informazioni sui tipi derivati, vedere Entity Data Model: Ereditarietà. La relazione tra un tipo di entità e un set di entità è analoga alla relazione tra una riga e una tabella in un database relazionale: come una riga, un tipo di entità descrive la struttura dei dati e, come una tabella, un set di entità contiene istanze di una determinata struttura. Un set di entità non è un costrutto di modellazione dei dati; non descrive la struttura dei dati. Un set di entità 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 del tipo di entità in modo che possano essere mappate a un archivio dati.
Un set di entità viene definito all'interno di un contenitore di entità, ovvero un raggruppamento logico di set di entità e set di associazioni.
Affinché un'istanza del tipo di entità esista in un set di entità, devono essere vere le seguenti condizioni:
Il tipo dell'istanza è uguale al tipo di entità su cui è basato il set di entità oppure il tipo dell'istanza è un sottotipo del tipo di entità.
La chiave di entità per l'istanza è univoca all'interno del set di entità.
L'istanza non esiste in alcun altro set di entità.
Annotazioni
È possibile definire più set di entità usando lo stesso tipo di entità, ma un'istanza di un determinato tipo di entità può esistere solo in un set di entità.
Non è necessario definire un set di entità per ogni tipo di entità in un modello concettuale.
Esempio
Il diagramma seguente illustra un modello concettuale con tre tipi di entità: Book, Publishere Author.
Il diagramma seguente mostra due set di entità (Books e Publishers) e un set di associazioni (PublishedBy) basato sul 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.
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 entità per ogni tipo di entità nel modello concettuale illustrato in precedenza. Si noti che il nome e il tipo di entità per ogni set di entità 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 entità per tipo (MEST). Il file CSDL seguente definisce un contenitore di entità con due set di entità per il Book tipo di entità:
<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>
Vedere anche
- Concetti chiave del modello di dati di entità
- Modello di Dati dell'Entità