Relazioni - Ef Designer

Annotazioni

Questa pagina fornisce informazioni sulla configurazione delle relazioni nel modello tramite Entity Framework Designer. Per informazioni generali sulle relazioni in Entity Framework e su come accedere e modificare i dati tramite relazioni, vedere Relazioni e proprietà di navigazione.

Le associazioni definiscono le relazioni tra i tipi di entità in un modello. Questo argomento illustra come eseguire il mapping delle associazioni con Entity Framework Designer (EF Designer). L'immagine seguente mostra le finestre principali usate quando si lavora con Entity Framework Designer.

EF Designer

Annotazioni

Quando si compila il modello concettuale, gli avvisi relativi a entità e associazioni non mappate possono essere visualizzati nell'elenco errori. È possibile ignorare questi avvisi perché dopo aver scelto di generare il database dal modello, gli errori verranno ignorati.

Panoramica delle associazioni

Quando si progetta il modello usando Entity Framework Designer, un file con estensione edmx rappresenta il modello. Nel file con estensione edmx un elemento Association definisce una relazione tra due tipi di entità. Un'associazione deve specificare i tipi di entità coinvolti nella relazione e il numero possibile di tipi di entità a ogni fine della relazione, nota come molteplicità. La molteplicità di un'associazione finale può avere un valore pari a uno (1), zero o uno (0,.1) o molti (*). Queste informazioni sono specificate in due elementi figlio End.

In fase di esecuzione, è possibile accedere alle istanze del tipo di entità alla fine di un'associazione tramite le proprietà di navigazione o le chiavi esterne (se si sceglie di esporre chiavi esterne nelle entità). Con chiavi esterne esposte, la relazione tra le entità viene gestita con un elemento ReferialConstraint (un elemento figlio dell'elemento Association ). È consigliabile esporre sempre chiavi esterne per le relazioni nelle entità.

Annotazioni

In molti-a-molti (*:*) non è possibile aggiungere chiavi esterne alle entità. In una relazione *:*, le informazioni sull'associazione sono gestite con un oggetto indipendente.

Per informazioni sugli elementi CSDL (ReferialConstraint, Association e così via) vedere la specifica CSDL.

Creare ed eliminare associazioni

La creazione di un'associazione con Ef Designer aggiorna il contenuto del modello del file con estensione edmx. Dopo aver creato un'associazione, è necessario creare i mapping per l'associazione (descritti più avanti in questo argomento).

Annotazioni

In questa sezione si presuppone che siano già state aggiunte al modello le entità con cui si desidera creare un'associazione.

Per creare un'associazione

  1. Fare clic con il pulsante destro del mouse su un'area vuota dell'area di progettazione, scegliere Aggiungi nuovo e selezionare Associazione....

  2. Compilare le impostazioni per l'associazione nella finestra di dialogo Aggiungi associazione .

    Aggiungi associazione

    Annotazioni

    È possibile scegliere di non aggiungere proprietà di navigazione o proprietà di chiave esterna alle entità agli estremi dell'associazione deselezionando le caselle di controllo **Proprietà di navigazione** e **Aggiungi proprietà di chiave esterna al tipo di entità <nome tipo di entità>**. Se si aggiunge una sola proprietà di navigazione, l'associazione sarà attraversabile in una sola direzione. Se non si aggiungono proprietà di navigazione, è necessario scegliere di aggiungere proprietà di chiave esterna per accedere alle entità alla fine dell'associazione.

  3. Fare clic su OK.

Per eliminare un'associazione

Per eliminare un'associazione, eseguire una delle operazioni seguenti:

  • Fare clic con il pulsante destro del mouse sull'associazione nell'area di Progettazione EF e scegliere Elimina.

  • O-

  • Seleziona una o più associazioni e premi il tasto CANC.

Includere proprietà di chiave esterna nelle entità (vincoli referenziali)

È consigliabile esporre sempre chiavi esterne per le relazioni nelle entità. Entity Framework usa un vincolo referenziale per identificare che una proprietà funge da chiave esterna per una relazione.

Se è stata selezionata la casella di controllo Aggiungi proprietà chiave esterna al nome< del tipo di entità Entity durante la > creazione di una relazione, questo vincolo referenziale è stato aggiunto automaticamente.

Quando si usa EF Designer per aggiungere o modificare un vincolo referenziale, EF Designer aggiunge o modifica un elemento ReferentialConstraint nel contenuto CSDL del file con estensione .edmx.

  • Fare doppio clic sull'associazione che si desidera modificare. La finestra di dialogo Vincolo referenziale verrà visualizzata.

  • Nell'elenco a discesa Principal, selezionare l'entità principale nel vincolo referenziale. Le proprietà chiave dell'entità vengono aggiunte all'elenco Chiave principale nella finestra di dialogo.

  • Nell'elenco a discesa Dipendente selezionare l'entità dipendente nel vincolo referenziale.

  • Per ogni chiave principale con una chiave dipendente, selezionare una chiave dipendente corrispondente dagli elenchi a discesa nella colonna Chiave dipendente .

    Vincolo di Riferimento

  • Fare clic su OK.

Creare e modificare mappature di associazioni

È possibile specificare il mapping di un'associazione al database nella finestra Mapping Details di EF Designer.

Annotazioni

È possibile mappare solo i dettagli per le associazioni che non dispongono di un vincolo referenziale specificato. Se viene specificato un vincolo referenziale, nell'entità sarà inclusa una proprietà di chiave esterna ed è possibile utilizzare i Dettagli di mapping per controllare a quale colonna viene mappata la chiave esterna.

Creare un mapping di associazione

  • Fare clic con il pulsante destro del mouse su un'associazione nell'area di progettazione e scegliere Mapping tabella. Viene visualizzata la mappatura dell'associazione nella finestra Dettagli mappatura .

  • Fare clic su Aggiungi tabella o vista. Viene visualizzato un elenco a discesa che include tutte le tabelle nel modello di archiviazione.

  • Selezionare la tabella a cui l'associazione verrà mappata. Nella finestra Dettagli mapping vengono visualizzate entrambe le estremità dell'associazione e le proprietà chiave per il tipo di entità a ogni estremità.

  • Per ogni proprietà chiave, fare clic sul campo Colonna e selezionare la colonna a cui verrà eseguito il mapping della proprietà.

    Dettagli mappatura 4

Modificare una mappatura di associazione

  • Fare clic con il pulsante destro del mouse su un'associazione nell'area di progettazione e scegliere Mappatura tabella. Viene visualizzata l'associazione del mapping nella finestra Dettagli di mapping.
  • Fare clic su Mappe a <Nome della tabella>. Viene visualizzato un elenco a discesa che include tutte le tabelle nel modello di archiviazione.
  • Selezionare la tabella a cui mappare l'associazione. Nella finestra Dettagli Mapping vengono visualizzati entrambi i lati dell'associazione e le proprietà chiave per il tipo di entità a ciascuna estremità.
  • Per ogni proprietà chiave, fare clic sul campo Colonna e selezionare la colonna a cui verrà eseguito il mapping della proprietà.

Modificare ed eliminare le proprietà di navigazione

Le proprietà di navigazione sono proprietà di scelta rapida usate per individuare le entità alla fine di un'associazione in un modello. Le proprietà di navigazione possono essere create quando si crea un'associazione tra due tipi di entità.

Per modificare le proprietà di navigazione

  • Selezionare una proprietà di navigazione nell'area di Progettazione EF. Le informazioni sulla proprietà di navigazione vengono visualizzate nella finestra Proprietà di Visual Studio.
  • Modificare le impostazioni delle proprietà nella finestra Proprietà .

Per eliminare le proprietà di navigazione

  • Se le chiavi esterne non vengono esposte sui tipi di entità nel modello concettuale, l'eliminazione di una proprietà di navigazione può rendere l'associazione corrispondente attraversabile in una sola direzione o non attraversabile affatto.
  • Fare clic con il pulsante destro del mouse su una proprietà di navigazione nell'area di Progettazione EF e scegliere Elimina.