Partager via


Objets de type complexe (Entity Framework)

Les types complexes sont les propriétés non scalaires des types d'entités qui permettent d'organiser les propriétés scalaires au sein des entités. À l'instar des entités, les types complexes regroupent des propriétés scalaires ou d'autres propriétés de type complexe. Dans la mesure où les types complexes n'ont pas de clés, les objets de type complexe, mis à part l'objet parent, ne peuvent pas être gérés par Entity Framework . Pour plus d'informations, consultez Élément ComplexType (CSDL).

Lorsque les outils Entity Framework génèrent les objets qui représentent des types d'entités, ces objets héritent de EntityObject. De la même manière, les objets générés pour les types complexes héritent de ComplexObject. Ces deux classes héritent de la classe de base StructuralObject. Les propriétés scalaires des objets de type complexe sont accessibles comme les autres propriétés scalaires. Pour plus d'informations, voir Procédure : interroger les types complexes (Entity Framework).

Lorsque vous travaillez avec des objets qui représentent des types complexes, prenez en considération les points suivants :

  • Les propriétés de type complexe ne peuvent pas être Null. Un InvalidOperationException se produit lorsque la méthode SaveChanges est appelée et qu'un objet complexe null est rencontré. À l'instar des propriétés scalaires des entités, les propriétés scalaires des objets complexes peuvent être Null.

  • Les types complexes ne peuvent pas hériter d'autres types complexes.

  • Lorsqu'une propriété quelle qu'elle soit est modifiée n'importe où dans le graphique d'objet d'un type complexe, la propriété du type parent est marquée comme modifiée et toutes les propriétés du graphique d'objet du type complexe sont mises à jour lorsque la méthode SaveChanges est appelée.

  • Lorsque la couche objet est générée par les outils Entity Data Model , des objets complexes sont instanciés lors de l'accès à la propriété de type complexe, et non lorsque l'objet parent est instancié.

Lors de l'utilisation des types POCO (objets CLR « classiques ») qui contiennent des propriétés de type complexe, vous devez également tenir compte des points suivants :

Les rubriques suivantes montrent comment effectuer diverses tâches impliquant des types complexes avec ADO.NET Entity Data Model Designer :

How to: Create and Modify Complex Types

How to: Add a Complex Type Property to an Entity

How to: Refactor Existing Properties into a Complex type Property

How to: Map Complex Type Properties to Table Columns

How to: Map a Function Import to a Complex Type

Voir aussi

Concepts

Utilisation d'objets (Entity Framework)