Entity framework EF CodeFirst将派生类之间的映射关系映射到同一个表

Entity framework EF CodeFirst将派生类之间的映射关系映射到同一个表,entity-framework,orm,ef-code-first,mapping,Entity Framework,Orm,Ef Code First,Mapping,我需要做以下映射 OrderItem将映射到tbl\u order\u item OrderItemCustomization将映射到tbl\u order\u item\u customization 我在tbl_order_item_customization中有一列[cd_order_item],它是外键 问题是我如何映射它们之间的关系 CardOrderItem->CardOrderItemCustomization CustomCardOrderItem->CustomCardOrd

我需要做以下映射

OrderItem将映射到tbl\u order\u item

OrderItemCustomization将映射到tbl\u order\u item\u customization

我在tbl_order_item_customization中有一列[cd_order_item],它是外键

问题是我如何映射它们之间的关系

CardOrderItem->CardOrderItemCustomization

CustomCardOrderItem->CustomCardOrderItemCustomization

我试过这个

public class OrderItemConfiguration : EntityTypeConfiguration<OrderItem>
{
  public OrderItemConfiguration()
  {
    ToTable("tbl_order_item");
    HasKey(i => i.Id);
    Property(i => i.Id).HasColumnName("cd_order_items");
    HasRequired(i => i.Order).WithMany(o => o.Items).Map(m => m.MapKey("cd_order"));
    HasRequired(i => i.Product).WithMany().Map(m => m.MapKey("cd_product"));
    Property(i => i.Quantity).HasColumnName("cd_quantity");
    Property(i => i.UnitAmount).HasColumnName("vl_item").HasColumnType("money");
    Property(i => i.TotalAmount).HasColumnName("vl_total").HasColumnType("money");
    Property(i => i.DiscountAmount).HasColumnName("vl_discount");
    Property(i => i.CostAmount).HasColumnName("vl_cost_price");
    Property(i => i.NetAmount).HasColumnName("vl_net");
    HasRequired(i => i.Status).WithMany().Map(m => m.MapKey("cd_status"));
    Property(i => i.IsActive).HasColumnName("fl_active");
  }
}

public class AbstractCardOrderItemConfiguration :   EntityTypeConfiguration<AbstractCardOrderItem>
{
  public AbstractCardOrderItemConfiguration()
  {
    Property(i => i.IsVirtual).HasColumnName("fl_virtual");
    Property(i => i.CardType).HasColumnName("cd_card_type").IsOptional();
    Property(i => i.Document).HasColumnName("nr_document");
    HasRequired(i => i.Package).WithRequiredPrincipal().Map(m =>   m.MapKey("cd_order_item_base"));
  }
}

public class CardOrderItemConfiguration : EntityTypeConfiguration<CardOrderItem>
{
  public CardOrderItemConfiguration()
  {
    HasRequired(i => i.CardOrderItemCustomization).WithRequiredPrincipal().Map(m =>   m.MapKey("cd_order_items"));
  }
}

public class CustomCardOrderItemConfiguration :   EntityTypeConfiguration<CustomCardOrderItem>
{
  public CustomCardOrderItemConfiguration()
  {
    HasRequired(i =>   i.CardWithCustomPhotoOrderItemCustomization).WithRequiredPrincipal().Map(m =>   m.MapKey("cd_order_items"));
  }
}
但这给了我一个错误:

在模型生成过程中检测到一个或多个验证错误:

cd_顺序_项:名称:类型中的每个属性名称必须唯一。 已定义属性名称“cd\ U订单\项目”

有什么方法可以实现所需的映射