2016-11-07 16 views
0

外部キーを2列に保存しようとしています。何らかの理由で、ナビゲーションプロパティのいくつかが私のテーブルの列として表示されているため、これはうんざりしています...ここにモデルがあります。私は間違って何をしていますか?同じテーブルに複数の外部キーがありますか?

public class BorrowedPerson 
    { 
     public int BorrowedPersonID { get; set; } 
     public Nullable<int> PersonID { get; set; } 
     public Nullable<int> CompanyID { get; set; } 
     public Nullable<int> TempCompanyID { get; set; } 
     public virtual Person Person { get; set; } 
     public virtual Company Company { get; set; } 
     public virtual Company TempCompanyID { get; set; } 
    } 
+0

基本的に、複数の仮想属性を使用している場合、TempCompanyID_CompanyおよびCompanyID_Companyという名前の列が作成されます –

答えて

1

私はそれを理解しました...非常に簡単な答えです。同じタイプに複数のナビゲーションプロパティを指定する場合は、そうするように外部キーを手動で指定する必要があります。

public class BorrowedPerson 
    { 
     public int BorrowedPersonID { get; set; } 
     public Nullable<int> PersonID { get; set; } 
     public Nullable<int> CompanyID { get; set; } 
     public Nullable<int> TempCompanyID { get; set; } 
     public virtual Person Person { get; set; } 
     [ForeignKey("CompanyID ")] 
     public virtual Company Company { get; set; } 
     [ForeignKey("TempCompanyID")] 
     public virtual Company TempCompanyID { get; set; } 
    } 
関連する問題