Comment Entity Framework implémente-t-il la mappage des classes héritées de C# dans la structure des tables de la base de données?
sobes.tech IA
Réponse de l'IA
Entity Framework prend en charge plusieurs stratégies de mappage d'héritage des classes C# dans des tables de base de données :
-
Table Per Hierarchy (TPH) — toutes les classes et leurs propriétés sont stockées dans une seule table avec une colonne supplémentaire de discriminant indiquant le type d'objet.
-
Table Per Type (TPT) — pour chaque classe, une table séparée est créée, où les tables des héritiers contiennent uniquement des champs supplémentaires, et la relation avec la classe de base est établie via une clé étrangère.
-
Table Per Concrete Class (TPC) — pour chaque classe concrète, une table séparée est créée, contenant tous les champs, y compris ceux hérités.
Exemple TPH :
public abstract class Animal { public int Id { get; set; } public string Name { get; set; } }
public class Cat : Animal { public int Lives { get; set; } }
public class Dog : Animal { public string Breed { get; set; } }
// La base de données aura une seule table Animals avec les colonnes Id, Name, Lives, Breed et Discriminator
Le choix de la stratégie dépend des exigences en termes de performance et de structure des données.