2016-11-07 3 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; } 
    } 
Смежные вопросы