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, список?, IList, ICollection?

спасибо

47
задан Matt 9 July 2015 в 15:19
поделиться