EF ICollection против списка против IEnumerable против IQueryable
Итак, моя модель EF имеет отношения, и согласно тому, что я видел в примерах, эти отношения должны быть сделаны с виртуальными свойствами ICollection.
Пример:
public class Task
{
public int Id { get; set; }
public string Description { get; set; }
public virtual ICollection<SubTask> { get; set; }
}
Я где-то читал, что я должен использовать IEnumerable для предотвращения отложенного выполнения, это правильно? Это означает, что если мои методы DAL возвращают IEnumerable, все еще с IQueryable, SQL будет выполняться в тот момент, а не в тот момент, когда я вызываю .TOList на веб-странице.
Итак, какова лучшая практика? Что я должен вернуть? IEnumerable, List ?, IList, ICollection?
Спасибо