Я хочу создать новый объект модели с именем Movie_Type
в моем веб-приложении ASP.NET MVC. Каковы будут различия, если я определяю навигационную функцию этого класса как List
, ICollection
или IQueryable
следующим образом:
public partial class Movie_Type
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<Movie> Movies { get; set; }
}
ИЛИ
public partial class Movie_Type
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public IQueryable<Movie> Movies { get; set; }
}
ИЛИ
public partial class Movie_Type
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public ICollection<Movie> Movies { get; set; }
}
Edit: -
@Томас Петричек.
Спасибо за ваш ответ. в моем случае я использую первый подход к базе данных, а затем я использую шаблон DbContext
для сопоставления моих таблиц, который автоматически создал ICollection
для всех свойств навигации. Поэтому мои вопросы:
1. Означает ли это, что не всегда лучший выбор для использования Icollection. И я должен изменить автоматически сгенерированные классы, чтобы наилучшим образом соответствовать моему делу.
2. Во-вторых, я могу выбирать между ленивой или нетерпеливой загрузкой, определяя .include, например
var courses = db.Courses.Include(c => c.Department);
Независимо от того, что я использую для определения свойств навигации. Поэтому я не могу понять точку ур.
3. Я никогда не нашел примеров или руководств, которые используют IQuerable
для определения свойств навигации, так что может быть причиной?
BR