Elemento End (SSDL)
L'elemento End in SSDL (Store Schema Definition Language) specifica la tabella e il numero di righe in corrispondenza di un'entità finale del vincolo di chiave esterna nel database sottostante. L'elemento End può essere un elemento figlio dell'elemento Association o dell'elemento AssociationSet. In entrambi i casi, gli elementi figlio possibili e gli attributi applicabili sono diversi.
Elemento End come figlio dell'elemento Association
Un elemento End (come figlio dell'elemento Association) specifica la tabella e il numero di righe in corrispondenza dell'entità finale del vincolo di chiave esterna rispettivamente con gli attributi Type e Multiplicity. Le entità finali del vincolo di chiave esterna sono definite come parte dell'associazione SSDL. L'associazione SSDL deve disporre esattamente di due entità finali.
Un elemento End può includere i seguenti elementi figlio (nell'ordine elencato):
Documentation (zero o un elemento)
OnDelete (zero o un elemento)
Elementi Annotation (zero o più elementi)
Attributi applicabili
Nella tabella seguente vengono descritti gli attributi che è possibile applicare all'elemento End quando è il figlio di un elemento Association.
Nome attributo | È obbligatorio | Valore |
---|---|---|
Type |
Sì |
Il nome completo del set di entità SSDL che si trova in corrispondenza dell'entità finale del vincolo di chiave esterna. |
Role |
No |
Il valore dell'attributo Role nell'elemento Principal o Dependent dell'elemento ReferentialConstraint corrispondente (se utilizzato). |
Multiplicity |
Sì |
1, 0..1 o * a seconda del numero di righe che possono essere presenti in corrispondenza dell'entità finale del vincolo di chiave esterna.
|
![]() |
---|
È possibile applicare qualsiasi numero di attributi di annotazione (attributi XML personalizzati) all'elemento End.Tuttavia, gli attributi personalizzati non possono appartenere ad alcuno spazio dei nomi XML riservato a CSDL.I nomi completi per due attributi personalizzati qualsiasi non possono essere uguali. |
Esempio
Nell'esempio riportato di seguito viene mostrato un elemento Association che definisce il vincolo di chiave esterna FK_CustomerOrders. I valori Multiplicity specificati su ogni elemento End indicano che molte righe nella tabella Orders possono essere associate a una riga nella tabella Customers, ma solo una riga nella tabella Customers può essere associata a una riga nella tabella Orders. L'elemento OnDelete indica inoltre che tutte le righe della tabella Orders che fanno riferimento a una determinata riga nella tabella Customers verranno eliminate se viene eliminata la riga della tabella Customers.
<Association Name="FK_CustomerOrders">
<End Role="Customers"
Type="ExampleModel.Store.Customers" Multiplicity="1">
<OnDelete Action="Cascade" />
</End>
<End Role="Orders"
Type="ExampleModel.Store.Orders" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Customers">
<PropertyRef Name="CustomerId" />
</Principal>
<Dependent Role="Orders">
<PropertyRef Name="CustomerId" />
</Dependent>
</ReferentialConstraint>
</Association>
Elemento End come figlio dell'elemento AssociationSet
L'elemento End (come figlio dell'elemento AssociationSet) specifica una tabella in corrispondenza dell'entità finale del vincolo di chiave esterna nel database sottostante.
Un elemento End può includere i seguenti elementi figlio (nell'ordine elencato):
Documentation (zero o un elemento)
Elementi Annotation (zero o più elementi)
Attributi applicabili
Nella tabella seguente vengono descritti gli attributi che è possibile applicare all'elemento End quando è figlio di un elemento AssociationSet.
Nome attributo | È obbligatorio | Valore |
---|---|---|
EntitySet |
Sì |
Il nome del set di entità SSDL in corrispondenza dell'entità finale del vincolo di chiave esterna. |
Role |
No |
Il valore di uno degli Role attributi specificati su un elemento End dell'elemento Association corrispondente. |
![]() |
---|
È possibile applicare qualsiasi numero di attributi di annotazione (attributi XML personalizzati) all'elemento End.Tuttavia, gli attributi personalizzati non possono appartenere ad alcuno spazio dei nomi XML riservato a CSDL.I nomi completi per due attributi personalizzati qualsiasi non possono essere uguali. |
Esempio
Nell'esempio riportato di seguito viene mostrato un elemento EntityContainer con un elemento AssociationSet con due elementi End:
<EntityContainer Name="ExampleModelStoreContainer">
<EntitySet Name="Customers"
EntityType="ExampleModel.Store.Customers"
Schema="dbo" />
<EntitySet Name="Orders"
EntityType="ExampleModel.Store.Orders"
Schema="dbo" />
<AssociationSet Name="FK_CustomerOrders"
Association="ExampleModel.Store.FK_CustomerOrders">
<End Role="Customers" EntitySet="Customers" />
<End Role="Orders" EntitySet="Orders" />
</AssociationSet>
</EntityContainer>
Vedere anche
Concetti
Panoramica su Entity Framework
Specifiche SSDL