0

これを行うのは、ディスクリミネーターフィルターを使用した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"));
    }
}

1人の子供で問題なく動作しますが、もっと必要なので、これを追加します:

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」がすでに定義されているというメッセージが表示されます。

あなたはなにか考えはありますか ?

4

1 に答える 1

0

列を2回マップすることはできません。2番目のリレーションには別の列を使用するか、基本クラスで定義された単一のリレーションのみを使用する必要があります。

于 2012-05-16T09:11:33.413 に答える