Sobes.tech
Junior — Middle

¿Cómo implementa Entity Framework el mapeo de clases heredadas de C# en la estructura de tablas de la base de datos?

sobes.tech AI

Respuesta de la IA

Entity Framework admite varias estrategias de mapeo de herencia de clases C# a tablas de base de datos:

  1. Table Per Hierarchy (TPH) — todas las clases y sus propiedades se almacenan en una sola tabla con una columna adicional de discriminador que indica el tipo de objeto.

  2. Table Per Type (TPT) — para cada clase se crea una tabla separada, donde las tablas de los herederos contienen solo campos adicionales, y la relación con la clase base se realiza mediante una clave externa.

  3. Table Per Concrete Class (TPC) — para cada clase concreta se crea una tabla separada que contiene todos los campos, incluidos los heredados.

Ejemplo 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; } }

// En la base de datos habrá una tabla llamada Animals con columnas Id, Name, Lives, Breed y Discriminator

La elección de la estrategia depende de los requisitos de rendimiento y la estructura de datos.