Я нахожусь в кривой обучения структуры сущности. Я следую инструкциям в инфраструктуре сущности в msdn. В образце сущности определяются следующим образом:Использование Hashset для инициализации объектов
public class Department
{
public Department()
{
this.Courses = new HashSet<Course>();
}
// Primary key
public int DepartmentID { get; set; }
public string Name { get; set; }
public decimal Budget { get; set; }
public System.DateTime StartDate { get; set; }
public int? Administrator { get; set; }
// Navigation property
public virtual ICollection<Course> Courses { get; private set; }
}
public class Course
{
public Course()
{
this.Instructors = new HashSet<Instructor>();
}
// Primary key
public int CourseID { get; set; }
public string Title { get; set; }
public int Credits { get; set; }
// Foreign key
public int DepartmentID { get; set; }
// Navigation properties
public virtual Department Department { get; set; }
public virtual ICollection<Instructor> Instructors { get; private set; }
}
public class Instructor
{
public Instructor()
{
this.Courses = new List<Course>();
}
// Primary key
public int InstructorID { get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public System.DateTime HireDate { get; set; }
// Navigation properties
public virtual ICollection<Course> Courses { get; private set; }
}
Я только показал некоторые из классов, ориентированных только на мой вопрос. Полный образец: here. Мое сомнение - Почему они используются hashset в конструкторе для создания свойств ICollection?
производительность HashSet хороша в заданных операциях Если HashSet целесообразно в этих типах областей, то
почему они инициализируются со списком в constuctor из «Инструкторов» лица?
Может быть просто показано 2 варианта. Но если нет, пожалуйста, совет, а также скажите мне другие общие сценарии использования hashset. Здесь они возвращаются как ICollection, только для инициализации они использовали hashset.