Personnalisation des objets (Entity Framework)

ADO.NET Entity Framework fournit des outils permettant de générer automatiquement une couche objet basée sur le fichier CSDL (Conceptual Schema Definition Language) d'un modèle EDM (Modèle de données d'entité). Ces classes de données peuvent être personnalisées à des degrés variables, selon les besoins de votre application. Vous pouvez également modifier vos propres classes de données personnalisées de façon à les utiliser avec un modèle EDM. Cela est utile lorsque vous mettez à niveau des classes de données à partir d'une application existante pour utiliser Entity Framework ou lorsque vous souhaitez plus de contrôle sur la manière dont les classes de données sont créées.

Extension des classes de données partielles

Les types définis dans un modèle EDM n'ont pas de méthodes associées comme les classes utilisées dans la programmation orientée objet. À la place, ils contiennent seulement des propriétés définies dans le modèle EDM. Vous pouvez ajouter des fonctionnalités aux objets en étendant les classes de données partielles générées. Lorsque des classes de données sont générées par les outils Modèle de données d'entité, elles sont implémentées en classes partielles. Une classe partielle fractionne la définition d'une classe sur deux fichiers sources, ou plus. Chaque fichier source contient une section de la définition de classe et toutes les sections sont combinées lorsque l'application est compilée. Pour plus d'informations, voir Partial (Visual Basic) ou partiel, Type (Référence C#).

Lorsque vous disposez de classes partielles, vous pouvez étendre ces classes à l'aide de méthodes et de propriétés personnalisées dans un fichier source séparé sans avoir à vous inquiéter de perdre cette personnalisation lorsque les fichiers générés seront actualisés. Pour plus d'informations, voir Procédure : personnaliser des objets de données générés (Entity Framework).

Logique métier personnalisée

Lorsque vous utilisez des classes de données générées, vous pouvez appeler une logique métier personnalisée au cours de certaines opérations Object Services, telles que la modification des propriétés ou des relations. Cette logique métier peut inclure la création d'une validation ou d'une journalisation supplémentaires lors de la modification de propriétés ou de l'appel de SaveChanges. Vous pouvez appeler la logique métier personnalisée en gérant les événements déclenchés par Object Services ou en définissant les méthodes partielles personnalisées qui sont appelées lorsque des propriétés sont modifiées.

Les événements et les méthodes ci-dessous sont utilisés pour appeler la logique métier personnalisée :

Classes de données personnalisées

Dans certains cas, la simple extension de classes partielles par l'ajout de méthodes et de propriétés risque ne pas offrir une souplesse suffisante. Considérez une application .NET Framework existante qui utilise ADO.NET pour charger des données à partir d'une base de données dans des objets CLR pour que l'application les utilise. Ces objets peuvent contenir des personnalisations et une logique métier précieuses qui doivent être préservées dans la couche objet. Ces personnalisations peuvent vous empêcher de migrer l'application vers l'utilisation d'Entity Framework. Vous pouvez également souhaiter disposer d'un contrôle supérieur sur vos types d'entité, outre la possibilité d'étendre les classes partielles générées.

La méthode recommandée pour utiliser les classes de données personnalisées avec un modèle EDM consiste à hériter de EntityObject. Si vous ne pouvez pas hériter de EntityObject ou si vous avez besoin de plus d'indépendance par rapport à l'infrastructure, Entity Framework fournit un jeu d'interfaces que vous pouvez implémenter pour utiliser des classes de données personnalisées avec un modèle EDM. Pour plus d'informations, voir Implémentation d'interfaces de classes de données personnalisées (Entity Framework). Lorsque vous utilisez des classes de données personnalisées, vous devez appliquer des attributs aux classes de données personnalisées et aux propriétés et notifier le contexte d'objet lors de la modification des propriétés.

Héritage à partir d'EntityObject

Les classes de données générées héritent de EntityObject ou de ComplexObject. Si vous devez utiliser des classes de données avec un modèle EDM, la méthode recommandée consiste à modifier vos classes de données pour hériter d'une de ces deux classes de base. De cette façon, les classes de données personnalisées bénéficient des fonctionnalités de suivi des modifications et de gestion des relations fournies par EntityObject.

Lorsque vous héritez de EntityObject et de ComplexObject, soyez conscient des points suivants :

L'exemple suivant définit la classe de données personnalisée Order, qui hérite de EntityObject :

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

Pour plus d'informations, voir Procédure : hériter des classes de base EntityObject et ComplexObject (Entity Framework).

Dans cette section

Voir aussi

Autres ressources

Object Services (Entity Framework)
Utilisation d'objets personnalisés (Tâches Entity Framework)