set di entitàentity set

Un set di entità è un contenitore logico per istanze di un tipo di entità e le istanze di qualsiasi tipo derivato da tale tipo di entità.An entity set is a logical container for instances of an entity type and instances of any type derived from that entity type. (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 di dati e, come una tabella, un set di entità contiene le istanze di una determinata struttura.(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. Un set di entità non è un costrutto di modellazione dati e non descrive la struttura di dati.An entity set is not a data modeling construct; it does not describe the structure of data. Un set di entità, invece, fornisce un costrutto per un ambiente host o di archiviazione (ad esempio Common Language Runtime o un database SQL Server) per raggruppare le istanze del tipo di entità in modo che se ne possa eseguire il mapping a un archivio dati.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.

Un set di entità è definito all'interno di un contenitore di entità, ovvero un raggruppamento logico di set di entità e set di associazioni.An entity set is defined within an entity container, which is a logical grouping of entity sets and association sets.

Perché un'istanza di un tipo di entità esista in un set di entità, devono essere osservate le seguenti condizioni:For an entity type instance to exist in an entity set, the following must be true:

  • Il tipo dell'istanza è lo stesso del tipo di entità su cui si basa il set di entità oppure il tipo dell'istanza è un sottotipo del tipo di entità.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.

  • Il chiave di entità per l'istanza è univoco all'interno del set di entità.The entity key for the instance is unique within the entity set.

  • L'istanza non esiste in nessun altro set di entità.The instance does not exist in any other entity set.

    Nota

    È possibile definire più set di entità tramite lo stesso tipo di entità, ma un'istanza di un determinato tipo di entità può esistere in un solo set di entità.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.

Non è necessario definire un set di entità per ogni tipo di entità in un modello concettuale.You do not have to define an entity set for each entity type in a conceptual model.

EsempioExample

Nel diagramma seguente viene illustrato un modello concettuale con tre tipi di entità: Book, Publisher e Author.The diagram below shows a conceptual model with three entity types: Book, Publisher, and Author.

Modello di esempioExample Model

Nel diagramma seguente vengono illustrati due set di entità (Books e Publishers) e un set di associazioni (PublishedBy) basati sul modello concettuale illustrato in precedenza.The following diagram shows two entity sets (Books and Publishers) and an association set (PublishedBy) based on the conceptual model shown above. Business Intelligence nel Books set di entità rappresenta un'istanza del Book il tipo di entità in fase di esecuzione.Bi in the Books entity set represents an instance of the Book entity type at run time. Analogamente, Pj rappresentano un Publisher dell'istanza nel Publishers set di entità.Similarly, Pj represent a Publisher instance in the Publishers entity set. BiPj rappresenta un'istanza di PublishedBy associazione nel PublishedBy set di associazioni.BiPj represents an instance of the PublishedBy association in the PublishedBy association set.

EsempioSets Example

Il ADO.NET Entity Framework Usa un linguaggio specifico di dominio (DSL), chiamato linguaggio conceptual schema definition language (CSDL) per definire i modelli concettuali.The ADO.NET Entity Framework uses a domain-specific language (DSL) called conceptual schema definition language (CSDL) to define conceptual models. Il linguaggio CSDL seguente definisce un contenitore di entità con un set di entità per ogni tipo di entità nel modello concettuale illustrato in precedenza.The following CSDL defines an entity container with one entity set for each entity type in the conceptual model shown above. Si noti che il nome e il tipo di entità per ogni set di entità sono definiti tramite attributi 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>

È possibile definire più set di entità per tipo (MEST).It is possible to define multiple entity sets per type (MEST). Il linguaggio CSDL seguente definisce un contenitore di entità con due set di entità per il tipo di entità 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>

Vedere ancheSee Also

Concetti chiave di Entity Data ModelEntity Data Model Key Concepts
Entity Data ModelEntity Data Model