Gewusst wie: Zuordnen von Änderungsfunktionen zu gespeicherten Prozeduren (Entity Data Model-Tools)

In diesem Thema wird beschrieben, wie die Insert-, Update- und Delete-Vorgänge eines Entitätstyps mit dem ADO.NET Entity Data Model Designer (Entity Designer) gespeicherten Prozeduren zugeordnet werden.

Entity Framework generiert eine von ObjectContext abgeleitete Klasse, die den Entitätencontainer im konzeptionellen Modell darstellt. (Der Name der abgeleiteten Klasse ist der Name des EntityContainer in der Datei des konzeptionellen Modells.) Diese Klasse macht eine SaveChanges-Methode verfügbar, mit der Aktualisierungen der zugrunde liegende Datenbank ausgelöst werden. Diese Aktualisierungen können vom System automatisch erzeugte SQL-Anweisungen (Standardeinstellung) oder durch den Entwickler angegebene gespeicherte Prozeduren verwenden. Der zum Erstellen, Aktualisieren und Löschen von Entitäten verwendete Anwendungscode ändert sich durch die Verwendung gespeicherter Prozeduren zur Aktualisierung der Datenbank nicht.

Cc716711.note(de-de,VS.100).gifHinweis:
Wenn Sie nicht alle drei Insert-, Update- und Delete-Vorgänge eines Entitätstyps gespeicherten Prozeduren zuordnen, schlagen die nicht zugeordneten Vorgänge bei der Ausführung zur Laufzeit fehl, und UpdateException wird ausgelöst.

Die folgenden Verfahren setzen voraus, dass Sie eine EDMX-Datei im Entity Designer geöffnet haben.

Zuordnen des Insert-Vorgangs zu einer gespeicherten Prozedur

So ordnen Sie den Insert-Vorgang einer gespeicherten Prozedur zu

  1. Klicken Sie auf der Entity Designer-Oberfläche oder im Fenster "Modellbrowser" mit der rechten Maustaste auf den Entitätstyp, für den Sie den Vorgang zuordnen möchten, und wählen Sie Mapping der gespeicherten Prozedur aus.

    Die Ansicht Mappingdetails des Fensters Entität zu Funktionen zuordnen wird angezeigt.

  2. Klicken Sie auf <Insert Function auswählen>.

  3. Wählen Sie in der Dropdownliste die gespeicherte Prozedur aus, der der Einfügevorgang zugeordnet werden soll.

    Das Fenster wird mit Standardmappings zwischen Entitätseigenschaften und Parametern gespeicherter Prozeduren aufgefüllt.

  4. Bearbeiten Sie ggf. für jeden Parameter einer gespeicherten Prozedur das Mapping, indem Sie auf das entsprechende Eigenschaftenfeld klicken und in der Dropdownliste die entsprechende Eigenschaft auswählen.

    Cc716711.note(de-de,VS.100).gifHinweis:
    Alle Entitätsschlüssel müssen über Mappings verfügen.Wenn die gespeicherte Prozedur eine INSERT-Anweisung verwendet, wird der Entitätsschlüssel in der Regel dem beim Einfügen der neuen Zeile erstellten Primärschlüssel zugeordnet.In den nächsten Schritten wird das Zuordnen von Daten, die von der gespeicherten Prozedur zurückgegeben werden, an Entitätseigenschaften beschrieben.

  5. Klicken Sie auf <Result Binding hinzufügen>.

    Das Feld wird bearbeitbar.

  6. Geben Sie den Namen des Parameters ein, der von der gespeicherten Prozedur zurückgegebene Daten enthält.

  7. Klicken Sie auf das Eigenschaftenfeld, das dem Parameternamen entspricht.

    Das Feld wird als Dropdownliste mit Eigenschaften angezeigt.

  8. Wählen Sie die Eigenschaft aus, der die zurückgegebenen Daten zugeordnet werden sollen.

    Cc716711.note(de-de,VS.100).gifHinweis:
    Für ganzzahlige Ausgabeparameter ist das Kontrollkästchen Parameter für betroffene Zeilen aktiviert.Wenn das Kontrollkästchen für einen Parameter aktiviert ist und beim Aufrufen des Insert-Vorgangs der Wert 0 (null) zurückgegeben wird, wird OptimisticConcurrencyException ausgelöst.

  9. Wiederholen Sie für jeden zurückgegebenen Wert und jede nicht zugeordnete Eigenschaft die Schritte 5 bis 8.

Der Insert-Vorgang für den ausgewählten Entitätstyp ist nun einer gespeicherten Prozedur zugeordnet.

Zuordnen des Update-Vorgangs zu einer gespeicherten Prozedur

So ordnen Sie den Update-Vorgang einer gespeicherten Prozedur zu

  1. Klicken Sie auf der Entity Designer-Oberfläche oder im Fenster "Modellbrowser" mit der rechten Maustaste auf den Entitätstyp, für den Sie den Vorgang zuordnen möchten, und wählen Sie Mapping der gespeicherten Prozedur aus.

    Die Ansicht Mappingdetails des Fensters Entität zu Funktionen zuordnen wird angezeigt.

  2. Klicken Sie auf <Update Function auswählen>.

  3. Wählen Sie in der Dropdownliste die gespeicherte Prozedur aus, der der Aktualisierungsvorgang zugeordnet werden soll.

    Das Fenster wird mit Standardmappings zwischen Entitätseigenschaften und Parametern gespeicherter Prozeduren aufgefüllt.

  4. Bearbeiten Sie ggf. für jeden Parameter einer gespeicherten Prozedur das Mapping, indem Sie auf das entsprechende Eigenschaftenfeld klicken und in der Dropdownliste die entsprechende Eigenschaft auswählen.

  5. Sie können für jede Eigenschaft optional das Kontrollkästchen in der Spalte Ursprünglichen Wert verwenden aktivieren.

    Mit der Option Ursprünglichen Wert verwenden können Sie die Parallelität steuern. Wenn die Option Ursprünglichen Wert verwenden für eine Eigenschaft aktiviert ist, wird der Wert der aus der Datenbank gelesenen Eigenschaft an den festgelegten Parameter der gespeicherten Prozedur übergeben. Es können sowohl die ursprünglichen als auch die aktuellen Werte einer Eigenschaft an verschiedene Parameter übergeben werden.

    Cc716711.note(de-de,VS.100).gifHinweis:
    Wenn Sie die Aktualisierungsfunktion zuordnen, können Sie die von der gespeicherten Prozedur zurückgegebenen Daten den Entitätseigenschaften zuordnen.In den nächsten Schritten wird das Zuordnen von Daten, die von der gespeicherten Prozedur zurückgegeben werden, an Entitätseigenschaften beschrieben.

  6. Klicken Sie auf <Result Binding hinzufügen>.

    Das Feld wird bearbeitbar.

  7. Geben Sie den Namen des Parameters ein, der von der gespeicherten Prozedur zurückgegebene Daten enthält.

  8. Klicken Sie auf das Eigenschaftenfeld, das dem Parameternamen entspricht.

  9. Wählen Sie in der Dropdownliste die Eigenschaft aus, der Sie die zurückgegebenen Daten zuordnen möchten.

    Cc716711.note(de-de,VS.100).gifHinweis:
    Für ganzzahlige Ausgabeparameter ist das Kontrollkästchen Parameter für betroffene Zeilen aktiviert.Wenn das Kontrollkästchen für einen Parameter aktiviert ist und beim Aufrufen des Update-Vorgangs der Wert 0 (null) zurückgegeben wird, wird OptimisticConcurrencyException ausgelöst.

  10. Wiederholen Sie ggf. für jeden zurückgegebenen Wert die Schritte 6 bis 9.

Der Update-Vorgang für den ausgewählten Entitätstyp ist nun einer gespeicherten Prozedur zugeordnet.

Zuordnen des Delete-Vorgangs zu einer gespeicherten Prozedur

So ordnen Sie den Delete-Vorgang einer gespeicherten Prozedur zu

  1. Klicken Sie auf der Entity Designer-Oberfläche oder im Fenster "Modellbrowser" mit der rechten Maustaste auf den Entitätstyp, für den Sie den Vorgang zuordnen möchten, und wählen Sie Mapping der gespeicherten Prozedur aus.

    Die Ansicht Mappingdetails des Fensters Entität zu Funktionen zuordnen wird angezeigt.

  2. Klicken Sie auf <Delete Function auswählen>.

  3. Wählen Sie in der Dropdownliste die gespeicherte Prozedur aus, der der Löschvorgang zugeordnet werden soll.

    Das Fenster wird mit Standardmappings zwischen Entitätseigenschaften und Parametern gespeicherter Prozeduren aufgefüllt.

  4. Bearbeiten Sie ggf. für jeden Parameter einer gespeicherten Prozedur das Mapping, indem Sie auf das entsprechende Eigenschaftenfeld klicken und in der Dropdownliste die entsprechende Eigenschaft auswählen.

    Cc716711.note(de-de,VS.100).gifHinweis:
    Sie müssen den Parametern der gespeicherten Prozedur Zuordnungen zuordnen.Zuordnungen können in der Dropdownliste mit den Eigenschaften ausgewählt werden.

Cc716711.note(de-de,VS.100).gifHinweis:
Für ganzzahlige Ausgabeparameter ist das Kontrollkästchen Parameter für betroffene Zeilen aktiviert.Wenn das Kontrollkästchen für einen Parameter aktiviert ist und beim Aufrufen des Delete-Vorgangs der Wert 0 (null) zurückgegeben wird, wird OptimisticConcurrencyException ausgelöst.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Zuordnen einer Entität zu gespeicherten Prozeduren (Entity Data Model-Tools)