2017-08-10 30 views
1

我想在代碼優先的地方定義一個數據庫模型來查看和顯示哪個用戶被指定爲記錄數據的專家。 我有用於用戶的非常簡單的模型:我已定義的定義可由用戶編輯和專家應該被分配到使用下拉列表的數據的兩個(簡單)模型ASP.NET MVC EF 6:定義一個查找表/模型

public class User 
{ 
    public int ID { get; set; } 
    public string userName { get; set; } 
    public string firstName { get; set; } 
    public string lastName { get; set; } 
    .... 
} 

下一頁:

public class Order 
{ 
    public int ID { get; set; } 
    public string orderNumber { get; set; } 
    public int specialistID { get; set; } 
    public virtual User specialist{ get; set; } 
} 

public class Part 
{ 
    public int ID { get; set; } 
    public string partNumber { get; set; } 
    public string description { get; set; } 
    public int specialistID { get; set; } 
    public virtual User specialist{ get; set; } 
} 

模型之間的什麼樣的關係可以在用戶模型中沒有每個表的導航屬性的情況下使用?

是否需要使用附加表來定義關係:User.Id-Order.specialistID和關係:User.Id-Part.specialistID?

Entity Framework是否有更智能的開箱即用方式?

非常感謝您的回答。 帕斯卡爾

+1

導航屬性是可選的。通過您的模型和默認EF約定,您已經定義了2個「一對多」關係。這種關係不需要單獨的表(它們在'many'側表中用FK列表示)。您是否遇到過模型的具體問題?如果是,請編輯您的問題以包含它們。 –

+1

謝謝伊萬。你的回答幫了我很多。 –

+0

您是否可以清除編輯的數據和專家是多對一還是一對一? – risa

回答

1

通過當您添加forign鍵約束的多到一個表中的實體框架添加虛擬財產到實體類和虛擬的ICollection用戶默認。