Entity Framework Table Per Type Inheritance Using a Discriminator Column

I use EF5 TPT and therefore do not expect a discriminator column. Why is it being created?

Table classes (simplified):

[Table("SalesDocumentHeaders")]
public abstract class SalesDocumentHeader : LoggedEntity
{
    [ForeignKey("CreatedByUserId")]
    public virtual User CreatedBy { get; set; }

    [Required]
    public int CreatedByUserId { get; set; }

    [Required]
    public virtual DateTime? DocumentDate { get; set; }

    [Required]
    public String ReferenceNumber { get; set; }

  } 

[Table("SalesOrders")]
public class SalesOrder : SalesDocumentHeader
{
    [Required]
    public String CustomerOrderNumber { get; set; }

    public DateTime? DeliverBy { get; set; }

    public virtual SortableBindingList<SalesOrderLine> Lines { get; set; }

}

public abstract class LoggedEntity
{
    public int Id { get; set; }

    public Guid RowId { get; set; }

    [ConcurrencyCheck]
    public int RowVersionId { get; set; }

}

Context contains

 public DbSet<SalesOrder> SalesOrders { get; set; }

 public DbSet<SalesDocumentHeader> SalesDocumentHeaders { get; set; }

The SalesDocumentHeader table is created using the Discriminator column. What am I doing wrong?

It doesn't matter if SalesDocumentHeader is declared abstract or not

+4
source share
1 answer

because I had another class inherited from SalesDocumentHeader that I forgot to mark with the table attribute

+4
source

All Articles