2015-04-14 71 views
0

我通過實體框架從數據庫生成了我的類。類名是表名,屬性是字段。 現在我有三張表,App_users,Book,Course。從實體框架生成的具有外鍵關係的類的結構

App_users與書和課程有一對多的關係(用戶標識符是外鍵)。當我看到的用戶類,它具有這樣的結構:

public partial class App_users 
{ 
    public App_users() 
    { 
     this.Book = new HashSet<Book>(); 
     this.Course = new HashSet<Course>(); 
    } 

    public int USERID { get; set; } 
    public string USERNAME { get; set; } 
    public virtual ICollection<Book> Book { get; set; } 
    public virtual ICollection<Course> Course { get; set; } 
} 
  1. 我想知道,爲什麼這些表(書&場)被定義爲HashSet的在構造函數中。這樣做有什麼用處/重要性?
  2. 再次把課本&課程定義爲ICOLLECTION。這樣做有什麼用處/重要性?

我知道這個結構用於顯示錶中的外鍵關係。

請任何人都可以解釋我這個。

回答

0

第一個問題:

的HashSet的是在插入和移除的時間是非常重要的,大多情況下有用,例如處理數據時。對於比較數據集(再次處理時)使用交叉,除了和聯合等操作也非常有用。在其他任何情況下,利弊通常都會超過專業人士。 (https://stackoverflow.com/a/18158905/1845408

第二個問題:

ICollection的<>(MSDN:http://msdn.microsoft.com/en-us/library/92t2ye13.aspx),用於對象的列表的對象的列表,需要通過迭代和修改,列表<>那需要迭代,修改,排序等(見這裏查看完整列表:http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx)。 https://stackoverflow.com/a/10113331/1845408

+0

感謝您的回覆。但爲什麼hashset在構造函數和icollection中用於屬性。你提到HashSet用於插入和刪除時間,這裏使用的構造函數中的關係是什麼。請解釋。 – user4221591