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?

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос