实体框架表每种类型继承与鉴别器列

时间:2013-11-16 02:37:26

标签: ef-code-first

我正在使用EF5 TPT,因此不期望使用鉴别器列。它为什么被创建?

(简化)表类是;

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

}

上下文包含

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

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

SalesDocumentHeader表使用Discriminator列创建。我做错了什么?

SalesDocumentHeader是否被声明为抽象

没有区别

1 个答案:

答案 0 :(得分:4)

因为我有另一个继承自SalesDocumentHeader的类,我忘了用表属性标记