Share via


Anpassen von Objekten (Entity Framework)

ADO.NET Entity Framework bietet Tools zur automatischen Erstellung einer Objektebene auf Grundlage der CSDL-Datei eines Entitätsdatenmodell (EDM). Diese Datenklassen können je nach Anforderungen Ihrer Anwendung in unterschiedlichem Ausmaß angepasst werden. Sie können auch eigene benutzerdefinierte Datenklassen für die Verwendung mit einem EDM ändern. Dies ist hilfreich, wenn Sie Datenklassen aus einer bestehenden Anwendung für die Verwendung des Entity Framework aktualisieren oder wenn Sie mehr Kontrolle über die Erstellung von Datenklassen wünschen.

Erweitern von partiellen Datenklassen

In einem EDM definierte Typen haben keine verknüpften Methoden wie die Klassen bei objektorientierter Programmierung. Stattdessen enthalten sie ausschließlich im EDM definierte Eigenschaften. Funktionen können Objekten hinzugefügt werden, indem die generierten partiellen Datenklassen erweitert werden. Bei der Generierung von Datenklassen durch die Entitätsdatenmodell-Tools werden diese in partiellen Klassen implementiert. Mit einer partiellen Klasse wird die Definition einer Klasse in zwei oder mehr Quelldateien aufgeteilt. Jede Quelldatei enthält einen Abschnitt der Klassendefinition. Die Abschnitte werden bei der Kompilierung der Anwendung miteinander kombiniert. Weitere Informationen finden Sie unter Partial (Visual Basic) bzw. partial (Typ) (C#-Referenz).

Mit partiellen Klassen haben Sie die Möglichkeit, diese mit benutzerdefinierten Methoden und Eigenschaften in einer separaten Quelldatei zu erweitern, ohne die Anpassungen zu verlieren, wenn die generierten Dateien aktualisiert werden. Weitere Informationen finden Sie unter Gewusst wie: Anpassen von generierten Datenobjekten (Entity Framework).

Benutzerdefinierte Geschäftslogik

Bei der Verwendung generierter Datenklassen kann benutzerdefinierte Geschäftslogik während bestimmter Object Services-Operationen, wie z. B: Änderungen an Eigenschaften oder Beziehungen, aufgerufen werden. Diese Geschäftslogik kann das Erstellen zusätzlicher Validierung oder Protokollierung beim Ändern von Eigenschaften oder beim Aufrufen von SaveChanges umfassen. Sie können benutzerdefinierte Geschäftslogik aufrufen, indem Sie durch Object Services ausgelöste Ereignisse behandeln oder benutzerdefinierte partielle Methoden definieren, die beim Ändern von Eigenschaften aufgerufen werden.

Folgende Ereignisse und Methoden werden zum Aufrufen benutzerdefinierter Geschäftslogik verwendet:

Benutzerdefinierte Datenklassen

Es gibt Fälle, in denen das Erweitern partieller Klassen durch Hinzufügen von Methoden und Eigenschaften nicht die notwendige Flexibilität bietet. Denken Sie an eine bestehende .NET Framework-Anwendung, die Daten zur Verwendung aus einer Datenbank mittels ADO.NET in CLR-Objekte lädt. Diese Objekte können wichtige Anpassungen und Geschäftslogik enthalten, die in der Objektebene beibehalten werden müssen. Diese Anpassungen könnten Sie daran hindern, die Anwendung für die Verwendung des Entity Framework zu migrieren. Möglicherweise wünschen Sie auch mehr Kontrolle über die Entitätstypen als lediglich die generierten partiellen Klassen zu erweitern.

Die empfohlene Vorgehensweise für die Verwendung benutzerdefinierter Datenklassen mit einem EDM ist das Erben von EntityObject. Wenn das Erben von EntityObject nicht möglich ist, oder wenn eine größere Unabhängigkeit vom Framework erforderlich ist, bietet das Entity Framework einen Satz von Schnittstellen, die zur Verwendung benutzerdefinierter Datenklassen mit einem EDM implementiert werden können. Weitere Informationen finden Sie unter Implementieren von Schnittstellen für benutzerdefinierte Datenklassen (Entity Framework). Bei der Verwendung benutzerdefinierter Datenklassen müssen Sie Attribute für benutzerdefinierte Datenklassen und Eigenschaften festlegen und den Objektkontext über Änderungen an Eigenschaften benachrichtigen.

Erben von EntityObject

Generierte Datenklassen erben von EntityObject oder ComplexObject. Bei der Verwendung benutzerdefinierter Datenklassen mit einem EDM wird empfohlen, die Datenklassen so zu bearbeiten, dass sie von einer dieser beiden Basisklassen erben. Auf diese Weise können für benutzerdefinierte Klassen die von EntityObject bereitgestellten Funktionen zur Änderungsnachverfolgung und Beziehungsverwaltung genutzt werden.

Beim Erben von EntityObject und ComplexObject müssen folgende Punkte beachtet werden:

Im folgenden Beispiel wird die benutzerdefinierte Datenklasse Order definiert, die von EntityObject erbt:

<EdmEntityTypeAttribute(NamespaceName:="Microsoft.Samples.Edm", Name:="Order")> _
Public Class Order
    Inherits EntityObject
[EdmEntityTypeAttribute(NamespaceName="Microsoft.Samples.Edm",Name="Order")]
public class Order : EntityObject 

Weitere Informationen finden Sie unter Gewusst wie: Erben von den Basisklassen 'EntityObject' und 'ComplexObject' (Entity Framework).

In diesem Abschnitt

Siehe auch

Weitere Ressourcen

Object Services (Entity Framework)
Arbeiten mit benutzerdefinierten Objekten (Entity Framework-Aufgaben)