实体框架4.1 - 在同一列上使用外键继承

时间:2012-05-16 09:06:20

标签: entity-framework-4.1

我这样做是为了在同一个表上基于带有鉴别器过滤器的TPH创建几个子类。

public class TraceBilletStation : Trace
{
    [UserVisible(Ordre = 6)]
    public BilletStation BilletStationnement { get; set; }
}

public class TraceBilletStationMap : EntityTypeConfiguration<TraceBilletStation>
{
    public TraceBilletStationMap()
    {
        this.HasOptional(p => p.BilletStationnement).WithMany()
            .Map(x => x.MapKey("TRA_CONCEPT_ID_INFO"));
    }
}

它适用于一个孩子,但我需要更多,所以我添加:

public class TraceAcheteur : Trace
{
    [UserVisible(Ordre = 6)]
    public Acheteur Acheteur { get; set; }
}


public class TraceAcheteurMap : EntityTypeConfiguration<TraceAcheteur>
{
    public TraceAcheteurMap()
    {
        this.HasOptional(p => p.Acheteur).WithMany()
            .Map(x => x.MapKey("TRA_CONCEPT_ID_INFO"));
    }
}

然后我得到一个MetadataException说已经定义了属性“TRA_CONCEPT_ID_INFO”。

你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您无法将任何列映射两次。您必须为第二个关系使用另一个列,或者必须仅使用基类中定义的单个关系。