Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In Entity Data Model (EDM) possono essere presenti vincoli referenziali tra gli oggetti correlati, ad esempio tra gli oggetti SalesOrderHeader e SalesOrderDetail. Questi vincoli vengono specificati nel file CSDL (Conceptual Schema Definition Language). Per ulteriori informazioni, vedere Elemento ReferentialConstraint (EntityContainer CSDL).
Nota |
|---|
Object Services non applica tutti i vincoli che possono essere espressi in un modello EDM. Non applica, ad esempio, i vincoli di cardinalità sulle relazioni e questo può causare la restituzione di risultati incoerenti quando le modifiche apportate agli oggetti correlati vengono salvate nell'origine dati. Assicurarsi che tutti i vincoli del modello critici vengano applicati dall'origine dati. |
Quando si utilizzano oggetti con relazioni vincolate, prestare attenzione ai punti seguenti:
Non possono essere presenti oggetti dipendenti (figlio) senza una relazione definita con l'oggetto padre.
Quando si crea un nuovo oggetto figlio, l'oggetto padre deve essere presente nel contesto dell'oggetto o nell'origine dati prima che venga chiamato SaveChanges. In caso contrario, viene generato un evento InvalidOperationException.
Utilizzare il metodo Add per aggiungere oggetti figlio all'oggetto EntityCollection dell'oggetto padre. È possibile accedere all'insieme di oggetti figlio da una proprietà di navigazione definita per la relazione o dai metodi GetRelatedEnd o GetRelatedCollection sulla proprietà RelationshipManager dell'oggetto padre.
L'eliminazione dell'oggetto padre comporta anche l'eliminazione di tutti gli oggetti figlio nella relazione vincolata. Questo risultato corrisponde all'attivazione della proprietà CascadeDelete nell'associazione per la relazione.
La rimozione della relazione comporta l'eliminazione dell'oggetto figlio. Questo significa che chiamando Remove su EntityCollection si contrassegnano per l'eliminazione sia la relazione che l'oggetto figlio.
Dopo essere stata creata, una relazione può essere modificata solo tramite il processo seguente:
Rimuovere la relazione esistente.
Chiamare il metodo SaveChanges.
Aggiungere l'oggetto figlio persistente all'oggetto EntityCollection del nuovo oggetto padre.
Nota