1

誰でもこれで私を助けることができますか?

ここに私の2つのクラスがあります

class Request
{
    public Nullable<int> BuyCurrencyId {get ; set;}
    public Nullable<int> SaleCurrencyId {get ; set;}

    [ForeignKey("SaleCurrencyId")]
    public virtual Currency SaleCurrency { get; set; }

    [ForeignKey("BuyCurrencyId")]
    public virtual Currency BuyCurrency { get; set; }
}


class Currency
{
     public int Id { get; set; }
     public string Name { get; set; }

     public virtual ICollection<Request> Requests { get; set; }
     public virtual ICollection<Request> Requests1 { get; set; }
}

更新された EF データベースを確認したところ、EF が次のReqyests ようなテーブルを作成していることがわかりました。

SaleCurrencyId int  (Already exists)
BuyCurrencyId  int  (Already exists)
Currency_Id    int  (Added by EF)
Currency_Id1   int  (Added by EF)

これは私が期待するものではありません。最後の2つの列が正しくなく、存在しないと思います。

誰でも私を助けることができますか?

EF 6 アルファを使用して、T4 によって生成されたモデルで既存のデータベースを更新しています。Fluent APIではなく、データ注釈を使用したいことに注意してください。

私の悪い英語でごめんなさい

更新 1 :

Currency クラスをこれに変更すれば問題は解決すると思いましたが、解決しませんでした。

class Currency
{
     public int Id { get; set; }
     public string Name { get; set; }

     [InverseProperty("SaleCurrencyId")]
     public virtual ICollection<Request> Requests { get; set; }
     [InverseProperty("BuyCurrencyId")]
     public virtual ICollection<Request> Requests1 { get; set; }
}
4

1 に答える 1

2

あなたの Update1 はほぼ正しい解決策ですが、属性のパラメーターは、外部キー プロパティではなく、[InverseProperty]のナビゲーション プロパティである必要があります。Request

[InverseProperty("SaleCurrency")]
public virtual ICollection<Request> Requests { get; set; }

[InverseProperty("BuyCurrency")]
public virtual ICollection<Request> Requests1 { get; set; }
于 2013-08-18T10:13:15.290 に答える