Freigeben über


Gewusst wie: Zuordnen von Änderungsfunktionen zu gespeicherten Prozeduren

In diesem Thema wird dargestellt, wie gespeicherten Prozeduren mit dem ADO.NET Entity Data Model-Designer (Entity Designer) die Einfüge-, Aktualisierungs- und Löschvorgänge eines Entitätstyps 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.

Beim Zuordnen von Einfüge-, Aktualisierungs- und Löschvorgängen eines Entitätstyps zu gespeicherten Prozeduren müssen die folgenden Schritte ausgeführt werden:

  • Ordnen Sie alle drei Operationen gespeicherten Prozeduren zu.

  • Ordnen Sie Zuordnungen konsistent zu. Wenn eine gespeicherte Prozedur einer Zuordnung für einen Vorgang zugeordnet wird, müssen auch die beiden anderen Vorgänge dieser Zuordnung zugeordnet werden.

  • Ordnen Sie verknüpfte Entitäten, die über eine 1:1-Beziehung verfügen, gespeicherten Prozeduren zu. Wenn diese Entität mit anderen Entitäten über eine 1:n- oder eine m:n-Beziehung verknüpft ist, ist es nicht erforderlich, die verknüpften Entitäten gespeicherten Prozeduren zuzuordnen.

Zuordnen des Einfügevorgangs zu einer gespeicherten Prozedur

So ordnen Sie den Einfügevorgang einer gespeicherten Prozedur zu

  1. Doppelklicken Sie im Projektmappen-Explorer auf die Datei <Modellname>.edmx.

    Die Datei wird im Formular-Designer geöffnet.

  2. Klicken Sie mit der rechten Maustaste auf den Entitätstyp, für den Sie den Einfügevorgang zuordnen möchten.

  3. Wählen Sie Zuordnungen für gespeicherte Prozeduren aus.

    Im Fenster Mappingdetails wird der Bereich Entitätsfunktionen zuordnen angezeigt.

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

  5. 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.

  6. 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.

    NoteHinweis

    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.

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

    Das Feld wird bearbeitbar.

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

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

    Das Feld wird als Dropdownliste mit Eigenschaften angezeigt.

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

  11. Wiederholen Sie für jeden zurückgegebenen Wert und für jede nicht zugeordnete Eigenschaft die Schritte 7 bis 10.

Der Einfügevorgang für den ausgewählten Entitätstyp ist nun einer gespeicherten Prozedur zugeordnet.

Zuordnen des Aktualisierungsvorgangs zu einer gespeicherten Prozedur

So ordnen Sie den Aktualisierungsvorgang einer gespeicherten Prozedur zu

  1. Doppelklicken Sie im Projektmappen-Explorer auf die Datei <Modellname>.edmx.

    Die Datei wird im Formular-Designer geöffnet.

  2. Klicken Sie mit der rechten Maustaste auf den Entitätstyp, für den Sie den Aktualisierungsvorgang zuordnen möchten.

  3. Wählen Sie Mappings für gespeicherte Prozeduren aus.

    Im Fenster Mappingdetails wird der Bereich Zu Entitätsfunktionen zuordnen angezeigt.

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

  5. 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.

  6. 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.

  7. 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.

    NoteHinweis

    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.

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

    Das Feld wird bearbeitbar.

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

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

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

  12. Sie können für jeden zurückgegebenen Wert die Schritte 8 bis 11 wiederholen.

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

Mapping des Löschvorgangs zu einer gespeicherten Prozedur

So ordnen Sie den Löschvorgang einer gespeicherten Prozedur zu

  1. Doppelklicken Sie im Projektmappen-Explorer auf die Datei <Modellname>.edmx.

    Die Datei wird im Formular-Designer geöffnet.

  2. Klicken Sie mit der rechten Maustaste auf den Entitätstyp, für den Sie den Löschvorgang zuordnen möchten.

  3. Wählen Sie Stored Procedures Mappings aus.

    Im Fenster Mappingdetails wird der Bereich Zu Entitätsfunktionen zuordnen angezeigt.

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

  5. 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.

  6. 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.

    NoteHinweis

    Sie müssen den Parametern der gespeicherten Prozedur Zuordnungen zuordnen. Zuordnungen können in der Dropdownliste mit Eigenschaften ausgewählt werden.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Zuordnen einer Entität zu gespeicherten Prozeduren

Weitere Ressourcen

Unterstützung für gespeicherte Prozeduren (Entity Framework)
Anwendungscode für zugeordnete gespeicherte Prozeduren (Entity Framework)