Share via


Procedura: eseguire il mapping delle funzioni di modifica alle stored procedure (strumenti di Entity Data Model)

In questo argomento viene illustrato come utilizzare ADO.NET Entity Data Model Designer (Entity Designer) per eseguire il mapping delle operazioni di inserimento, aggiornamento ed eliminazione di un tipo di entità alle stored procedure.

Entity Framework genera una classe derivata da ObjectContext che rappresenta il contenitore di entità nel modello concettuale. Il nome della classe derivata corrisponde al nome di EntityContainer nel file del modello concettuale. Questa classe espone un metodo SaveChanges che attiva gli aggiornamenti al database sottostante. Per questi aggiornamenti è possibile utilizzare le istruzioni SQL generate automaticamente dal sistema (impostazione predefinita) o le stored procedure specificate dallo sviluppatore. Il codice dell'applicazione utilizzato per creare, aggiornare ed eliminare le entità è identico indipendentemente dall'uso o meno delle stored procedure per aggiornare il database.

Cc716711.note(it-it,VS.100).gifNota:
Se non si esegue il mapping di tutte e tre le operazioni di inserimento, aggiornamento ed eliminazione di un tipo di entità alle stored procedure, le operazioni non mappate avranno esito negativo se eseguite in fase di esecuzione; verrà inoltre generata un'eccezione UpdateException.

Nelle procedure riportate di seguito si presuppone che un file con estensione edmx sia aperto in Entity Designer.

Mapping dell'operazione di inserimento a una stored procedure

Per eseguire il mapping dell'operazione di inserimento a una stored procedure

  1. Nell'area di Entity Designer o nella finestra Browser modello fare clic con il pulsante destro del mouse sul tipo di entità per il quale si desidera eseguire il mapping dell'operazione di inserimento e selezionare Mapping stored procedure.

    Verrà aperta la visualizzazione Esegui mapping tra Entity e Functions della finestra Dettagli Mapping.

  2. Fare clic su <Seleziona Insert Function>.

  3. Nell'elenco a discesa selezionare la stored procedure con la quale verrà eseguito il mapping dell'operazione di inserimento.

    Nella finestra verranno automaticamente visualizzati i mapping predefiniti tra i parametri delle stored procedure e le proprietà dell'entità.

  4. Per ogni parametro della stored procedure, modificare il mapping in base alle esigenze facendo clic sul campo della proprietà corrispondente e scegliendo la proprietà desiderata nell'elenco a discesa.

    Cc716711.note(it-it,VS.100).gifNota:
    Tutte le chiavi di entità devono presentare mapping.Se la stored procedure utilizza un'istruzione INSERT, la chiave dell'entità viene in genere mappata alla chiave primaria creata quando è stata inserita la nuova riga.Nei passaggi successivi viene illustrato come eseguire il mapping dei dati restituiti dalla stored procedure alle proprietà dell'entità.

  5. Fare clic su <Aggiungi Result Binding>.

    Il campo diventa modificabile.

  6. Digitare il nome del parametro che contiene i dati restituiti dalla stored procedure.

  7. Fare clic sul campo della proprietà che corrisponde al nome del parametro.

    Il campo diventerà un elenco a discesa di proprietà.

  8. Selezionare la proprietà alla quale eseguire il mapping dei dati restituiti.

    Cc716711.note(it-it,VS.100).gifNota:
    Per i parametri di output con valore Integer, la casella di controllo Parametro delle righe interessate è abilitata.Se la casella di controllo viene selezionata per un parametro e il valore restituito quando viene chiamata l'operazione di inserimento è zero, verrà generata un'eccezione OptimisticConcurrencyException.

  9. Ripetere i passaggi da 5 a 8 per ogni valore restituito e proprietà non mappata.

A questo punto, l'operazione di inserimento per il tipo di entità selezionato risulta mappata a una stored procedure.

Mapping dell'operazione di aggiornamento a una stored procedure

Per eseguire il mapping dell'operazione di aggiornamento a una stored procedure

  1. Nell'area di Entity Designer o nella finestra Browser modello fare clic con il pulsante destro del mouse sul tipo di entità per il quale si desidera eseguire il mapping dell'operazione di inserimento e selezionare Mapping stored procedure.

    Verrà aperta la visualizzazione Esegui mapping tra Entity e Functions della finestra Dettagli Mapping.

  2. Fare clic su <Seleziona Update Function>.

  3. Nell'elenco a discesa selezionare la stored procedure con la quale verrà eseguito il mapping dell'operazione di aggiornamento.

    Nella finestra verranno automaticamente visualizzati i mapping predefiniti tra i parametri delle stored procedure e le proprietà dell'entità.

  4. Per ogni parametro della stored procedure, modificare il mapping in base alle esigenze facendo clic sul campo della proprietà corrispondente e scegliendo la proprietà desiderata nell'elenco a discesa.

  5. Per ogni proprietà, è possibile selezionare facoltativamente la casella della colonna Utilizza Original Value.

    L'opzione Utilizza Original Value consente di utilizzare il controllo della concorrenza. Se si seleziona tale opzione per una proprietà, il valore della proprietà letto dal database verrà passato al parametro della stored procedure specificato. Si noti che è possibile passare sia i valori originali sia quelli correnti di una proprietà a parametri diversi.

    Cc716711.note(it-it,VS.100).gifNota:
    Il mapping dell'operazione di aggiornamento consente di eseguire il mapping dei dati restituiti dalla stored procedure alle proprietà dell'entità.Nei passaggi successivi viene illustrato come eseguire il mapping dei dati restituiti dalla stored procedure alle proprietà dell'entità.

  6. Fare clic su <Aggiungi Result Binding>.

    Il campo diventa modificabile.

  7. Digitare il nome del parametro che contiene i dati restituiti dalla stored procedure.

  8. Fare clic sul campo della proprietà che corrisponde al nome del parametro.

  9. Nell'elenco a discesa selezionare la proprietà alla quale eseguire il mapping dei dati restituiti.

    Cc716711.note(it-it,VS.100).gifNota:
    Per i parametri di output con valore Integer, la casella di controllo Parametro delle righe interessate è abilitata.Se la casella di controllo viene selezionata per un parametro e il valore restituito quando viene chiamata l'operazione di aggiornamento è zero, verrà generata un'eccezione OptimisticConcurrencyException.

  10. Facoltativamente, ripetere i passaggi da 6 a 9 per ogni valore restituito.

A questo punto, l'operazione di aggiornamento per il tipo di entità selezionato risulta mappata a una stored procedure.

Mapping dell'operazione di eliminazione a una stored procedure

Per eseguire il mapping dell'operazione di eliminazione a una stored procedure

  1. Nell'area di Entity Designer o nella finestra Browser modello fare clic con il pulsante destro del mouse sul tipo di entità per il quale si desidera eseguire il mapping dell'operazione di inserimento e selezionare Mapping stored procedure.

    Verrà aperta la visualizzazione Esegui mapping tra Entity e Functions della finestra Dettagli Mapping.

  2. Fare clic su <Seleziona Delete Function>.

  3. Nell'elenco a discesa selezionare la stored procedure con la quale verrà eseguito il mapping dell'operazione di eliminazione.

    Nella finestra verranno automaticamente visualizzati i mapping predefiniti tra i parametri delle stored procedure e le proprietà dell'entità.

  4. Per ogni parametro della stored procedure, modificare il mapping in base alle esigenze facendo clic sul campo della proprietà corrispondente e scegliendo la proprietà desiderata nell'elenco a discesa.

    Cc716711.note(it-it,VS.100).gifNota:
    È necessario eseguire il mapping delle associazioni ai parametri delle stored procedure.Le associazioni sono disponibili per la selezione nell'elenco a discesa delle proprietà.

Cc716711.note(it-it,VS.100).gifNota:
Per i parametri di output con valore Integer, la casella di controllo Parametro delle righe interessate è abilitata.Se la casella di controllo viene selezionata per un parametro e il valore restituito quando viene chiamata l'operazione di eliminazione è zero, verrà generata un'eccezione OptimisticConcurrencyException.

Vedere anche

Attività

Procedura dettagliata: mapping di un'entità alle stored procedure (strumenti di Entity Data Model)