TPC中不必要的鉴别器列 - EF6,代码优先

时间:2014-11-13 10:27:50

标签: .net entity-framework

我正在尝试从类层次结构生成模式:

public class BaseEntity
{
    public int Id { get; set; }
}

public class BaseTransaction : BaseEntity
{
// common fields
}

public class MyTransaction : BaseTransaction
{
// type-specific fields
}

使用流畅的API进行DbContext配置:

public DbSet<MyTransaction> MyTransactions { get; set; }

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
 {
    modelBuilder.Entity<MyTransaction>().Map(m =>
    {
        m.MapInheritedProperties();
        m.ToTable("MyTransactions");
    });
 // ...
 }

我想获得一个包含所有字段的表(从所有超类中继承)。 此方面有效,但EF生成Discriminator列:Discriminator(nvarchar(128),null),这是TPH的典型特征。 我想明确地使用TPC。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

如果有任何人碰巧遇到类似的问题,请检查是否有一些类继承自使用其他Discriminator列映射的类。

如果某个类是继承链的一部分,则EF会添加此列。