Set di associazioni (EDM)
In Entity Data Model (EDM) un AssociationSet è un contenitore logico per associazioni di un singolo tipo. Analogamente, i set di entità sono contenitori per entità dello stesso tipo. I set di entità e di associazioni definiti in schemi vengono mappati a tabelle nel database in cui sono archiviati i dati per le applicazioni. I set di entità e di associazioni costituiscono l'elemento di base delle classi nel modello a oggetti di programmazione che verrà utilizzato dal codice dell'applicazione.
La designazione AssociationSet viene utilizzata per due motivi:
Per definire l'ambito degli endpoint di un elemento Association.
Per gestire le associazioni tra istanze dell'entità.
Poiché un oggetto EntityType può essere utilizzato da più di un oggetto EntitySet, i set di associazioni sono necessari per definire l'ambito degli endpoint della relazione.
Un oggetto Association connette due o più istanze dell'entità che appartengono ai due set di entità specificati da Association. AssociationSet contiene le istanze, se presenti, di Association.
I tipi di entità sono contenuti logicamente nei set di entità e nei contenitori di entità e le loro istanze vengono create in questi oggetti. Analogamente, le istanze delle associazioni sono create nei set di associazioni e nei contenitori di associazioni.
Le associazioni e i set di associazioni sono concetti astratti, come le entità e i set di entità. Ogni implementazione di un oggetto AssociationSet è un tipo derivato.
L'attributo Association di un elemento AssociationSet specifica un oggetto Association nella sintassi dello schema CSDL (Conceptual Schema Definition Language) seguente:
<AssociationSet Name="CustomerOrderSet" Association="CustomerOrderType">
Due entità finali di EntitySet sono specificate nelle proprietà End di AssociationSet. L'associazione deve essere indicata in modo completo dal nome dello spazio dei nomi.
<AssociationSet Name="CustomerOrderSet" Association="
MyCompany.LOBSchema.CustomerOrderType">
<End Role="Orders" EntitySet="CustomerSet" />
<End Role="OrderedBy" EntitySet="OrderSet" />
</AssociationSet >
Le proprietà End dell'oggetto AssociationSet specificano le istanze di EntitySet che corrispondono a queste istanze di EntityType.
Nell'esempio seguente vengono illustrate le dichiarazioni di due tipi di entità, due set di entità, un'associazione e un set di associazioni:
<?xml version="1.0" encoding="utf-8"?>
<Schema xmlns:cg="https://schemas.microsoft.com/ado/2006/04/codegeneration"
xmlns:edm="https://schemas.microsoft.com/ado/2006/04/edm"
xmlns="https://schemas.microsoft.com/ado/2006/04/edm"
Namespace="MyCompany.LOBSchema" Alias="Self">
<EntityType Name="Customer">
<Key>
<Property Name="CustomerId" Type="Int32" Nullable="false" />
</Key>
<!-- Other properties -->
</EntityType>
<EntityType Name="Order">
<Key>
<PropertyRef Name="OrderId" />
</Key>
<Property Name="OrderId" Type="Int32" Nullable="false" />
<!-- Other properties -->
</EntityType>
<Association Name="CustomerOrderType">
<End Role="Orders" Type="Namespace.Customer" Multiplicity="1" />
<End Role="OrderedBy" Type=" Namespace.Order" Multiplicity="0..*" />
</Association>
<EntityContainer Name="ContainerType">
<EntitySet Name="CustomerSet" EntityType=" Namespace.Customer" />
<EntitySet Name="OrderSet" EntityType=" MyCompany.LOBSchema.Order" />
<AssociationSet Name="CustomerOrderSet" Association="CustomerOrderType">
<End Role="Orders" EntitySet=" MyCompany.LOBSchema.CustomerSet" />
<End Role="OrderedBy" EntitySet="MyCompany.LOBSchema.OrderSet" />
</AssociationSet>
</EntityContainer>
</Schema>
In questo esempio vengono prima definite le entità Customer
e Order
****di EntityType. Viene quindi definito l'oggetto Association denominato CustomerOrderType
. I set di entità CustomerSet
e OrderSet
sono dichiarati in EntityContainer. Per ulteriori informazioni sui contenitori di entità, vedere Contenitori di entità (EDM).
L'elemento AssociationSet è definito anche in EntityContainer come oggetto AssociationSet denominato CustomerOrderSet
di tipo CustomerOrderType
.
Le due proprietà End sono tipi CustomerOrderSet
are EntitySet, in questo caso CustomerSet
e OrderSet
. Le istanze di Association si trovano in CustomerOrderSet
e connettono le istanze di Customer
in CustomerSet
con le istanze di Order
in OrderSet
.
Vedere anche
Concetti
Associazione (EDM)
Relazioni in Entity Data Model
Tipi EDM (Entity Data Model)
Set di entità (EDM)
Contenitori di entità (EDM)
Schemi (EDM)