Freigeben über


Definieren von Geschäftslogik (Entity Framework)

Sie können einer Entity Framework -Anwendung Geschäftslogik hinzufügen, indem Sie die Ereignisse behandeln, die während bestimmter Vorgänge ausgelöst werden, z. B. durch Änderungen von Eigenschaften oder Beziehungen. Diese Geschäftslogik kann das Erstellen zusätzlicher Validierung oder Protokollierung beim Ändern von Eigenschaften oder beim Aufruf der SaveChanges-Methode umfassen. Sie können benutzerdefinierte Geschäftslogik aufrufen, indem Sie durch Entity Framework ausgelöste Ereignisse behandeln oder benutzerdefinierte partielle Methoden definieren, die beim Ändern von Eigenschaften aufgerufen werden. Dieses Thema führt einige Ereignisse auf und enthält Links zu anderen verwandten Themen.

Ereignis und partielle Methode Beschreibung

System.Data.Objects.ObjectContext.ObjectMaterialized

Wird ausgelöst, wenn im Rahmen einer Abfrage oder eines Ladevorgangs eine neue Entität aus Daten in der Datenquelle erstellt wird. Das Ereignis tritt auf, nachdem alle skalaren, komplexen und Verweiseigenschaften eines Objekts festgelegt wurden, jedoch bevor Auflistungen geladen werden. Wenn ein Objekt mit dem gleichen Schlüsselwert schon im Objektkontext vorhanden ist, erstellt Entity Framework das Objekt nicht neu, und dieses Ereignis wird nicht ausgelöst.

System.Data.Objects.ObjectContext.SavingChanges

Wird am Beginn eines SaveChanges-Vorgangs in einem ObjectContext ausgelöst. Dieses Ereignis wird normalerweise dazu verwendet, um geänderte Objekte zu validieren, bevor neue Werte in die Datenbank geschrieben werden.

Weitere Informationen finden Sie unter Gewusst wie: Ausführen von Geschäftslogik beim Speichern von Änderungen (Entity Framework).

System.Data.Objects.ObjectStateManager.ObjectStateManagerChanged

Tritt auf, wenn Entitäten den Kontext mittels Lösch- oder Trennmethoden verlassen oder in den Kontext mithilfe von Abfragen oder Einfüge- und Anhängemethoden eintreten. Weitere Informationen finden Sie unter Gewusst wie: Ausführen von Geschäftslogik, wenn sich der Objektzustand ändert.

Dd456876.note(de-de,VS.100).gifHinweis:
Wenn Sie POCO-Entitäten ohne Änderungsnachverfolgungsproxys verwenden, wird die Änderung erkannt, sobald Sie die DetectChanges- oder die SaveChanges-Methode aufrufen, die ihrerseits DetectChanges aufruft.

System.Data.Objects.DataClasses.RelatedEnd.AssociationChanged

Tritt auf, wenn sich eine Zuordnung ändert. Wenn Sie die durch Standardcode generierten Entitäten oder POCO-Entitäten mit Proxyobjekten verwenden, dann tritt das Ereignis zu dem Zeitpunkt auf, an dem die Änderung an der tatsächlichen Navigationseigenschaft vorgenommen wird:

Dd456876.note(de-de,VS.100).gifHinweis:
Wenn Sie POCO-Entitäten ohne Proxys verwenden, wird die Änderung erkannt, wenn Sie die DetectChanges- oder die SaveChanges-Methode aufrufen, die ihrerseits DetectChanges aufruft.

Ereignisse werden während der Ausführung von Massenvorgängen wie Load, Attach und Clear möglicherweise unterdrückt.

Weitere Informationen dazu finden Sie unter Gewusst wie: Ausführen von Geschäftslogik im Verlauf von Zuordnungsänderungen.

System.Data.Objects.DataClasses.StructuralObject.PropertyChanging

Tritt ein, wenn die Änderung eines skalaren Eigenschaftswerts aussteht. Die von Entity Framework generierten Klassen rufen ReportPropertyChanging in den skalaren Eigenschaftensettern auf. Die ReportPropertyChanging-Methode löst das PropertyChanging-Ereignis aus. Behandeln Sie dieses Ereignis, um Geschäftslogik auszuführen, z. B. zur Überprüfung vor der Änderung eines Eigenschaftswertes. Weitere Informationen finden Sie unter Gewusst wie: Ausführen von Geschäftslogik im Verlauf von Skalareigenschaftsänderungen (Entity Framework).

Beim Nachverfolgen von Änderungen, die an benutzerdefinierten Datenklassen vorgenommen werden, die IEntityWithChangeTracker implementieren, muss IEntityChangeTracker zum Melden der Änderungen an den Eigenschaften verwendet werden.

Dd456876.note(de-de,VS.100).gifHinweis:
Damit Sie bei einer Änderung der Navigationseigenschaft benachrichtigt werden, müssen Sie sich für das System.Data.Objects.DataClasses.RelatedEnd.AssociationChanged-Ereignis registrieren.Weitere Informationen finden Sie unter Gewusst wie: Ausführen von Geschäftslogik im Verlauf von Zuordnungsänderungen.

System.Data.Objects.DataClasses.StructuralObject.PropertyChanged

Tritt ein, wenn sich ein skalarer Eigenschaftswert geändert hat. Die von Entity Framework generierten Klassen rufen ReportPropertyChanged in den skalaren Eigenschaftensettern auf. Die ReportPropertyChanged-Methode löst das PropertyChanged-Ereignis aus. Behandeln Sie dieses Ereignis, um Geschäftslogik auszuführen, z. B. zur Protokollierung der Änderung einer Eigenschaft. Weitere Informationen finden Sie unter Gewusst wie: Ausführen von Geschäftslogik im Verlauf von Skalareigenschaftsänderungen (Entity Framework).

Beim Nachverfolgen von Änderungen, die an benutzerdefinierten Datenklassen vorgenommen werden, die IEntityWithChangeTracker implementieren, muss IEntityChangeTracker zum Melden der Änderungen an den Eigenschaften verwendet werden.

Dd456876.note(de-de,VS.100).gifHinweis:
Damit Sie bei einer Änderung der Navigationseigenschaft benachrichtigt werden, müssen Sie sich für das System.Data.Objects.DataClasses.RelatedEnd.AssociationChanged-Ereignis registrieren.Weitere Informationen finden Sie unter Gewusst wie: Ausführen von Geschäftslogik im Verlauf von Zuordnungsänderungen.

OnContextCreated-Methode

Die Entity Data Model -Tools generieren eine partielle OnContextCreated-Methode in der Klasse, die den EntityContainer für das Modell darstellt, und die von der ObjectContext-Klasse erbt. Diese partielle Methode wird immer dann aufgerufen, wenn ein ObjectContext instanziiert wird. Implementieren Sie diese partielle Methode im Code, um einen Handler für das SavingChanges-Ereignis zu registrieren. Weitere Informationen finden Sie unter Gewusst wie: Ausführen von Geschäftslogik beim Speichern von Änderungen (Entity Framework).

On PropertyName Changing und OnPropertyNameChanged

Die Entity Data Model -Tools generieren für jeden Entitätstyp partielle Methoden in den set-Accessoren für die skalaren Eigenschaften. Die partielle OnPropertyNameChanging-Methode wird aufgerufen, bevor der Wert festgelegt wird. Die partielle OnPropertyNameChanged-Methode wird aufgerufen, nachdem der Wert festgelegt wurde. Implementieren Sie diese partiellen Methoden, um Geschäftslogik hinzuzufügen.

Siehe auch

Konzepte

Anpassen von Objekten (Entity Framework)

Weitere Ressourcen

Entity Data Model Tools