so, my EF model has relationships and according to what I have seen in examples, those relationships should be done with virtual properties of ICollection.
Example:
public class Task
{
public int Id { get; set; }
public string Description { get; set; }
public virtual ICollection<SubTask> { get; set; }
}
I read somewhere that I should use IEnumerable to prevent deferred execution, is that correct? It means that if my DAL methods return IEnumerable, still of IQueryable, the SQL will be executed at that moment, and not at the moment when I call .TOList in the web page.
So, what is the best practice? What should I return? IEnumerable, List?, IList, ICollection?
thx
.ToList()
or a foreach
. Which means you still can add filters, like a Where()
.What is "best" depends on your requirements. Usually though an IEnumerable is "good enough" if you only want to display items. At least always use the generic variant.