Solución:
los Discriminator
La columna se usa y se requiere en Tabla por jerarquía escenarios de herencia. Si por ejemplo tienes un modelo como este …
public abstract class BaseEntity
{
public int Id { get; set; }
//...
}
public class Post : BaseEntity
{
//...
}
public class OtherEntity : BaseEntity
{
//...
}
… y hacer el BaseEntity
parte del modelo, por ejemplo, agregando un DbSet<BaseEntity>
a su contexto derivado, Entity Framework asignará esta jerarquía de clases de forma predeterminada en una sola tabla, pero introducirá una columna especial: la Discriminator
– distinguir entre los diferentes tipos (Post
o OtherEntity
) almacenados en esta tabla. Esta columna se llena con el nombre del tipo (nuevamente Post
o OtherEntity
).
Puede detener la creación de la columna agregando el [NotMapped]
anotación de datos a los modelos que están heredando de su clase base. Esto le dirá a EF que no agregue su clase a migraciones futuras, eliminando la columna discriminadora.
public class BaseClass
{
}
[NotMapped]
public class InheritingClass : BaseClass
{
}