using IEnumerable
view model
public class ResumeDetailsViewModel
{
public IEnumerable<WorkExperience> WorkExperiences { get; set; }
}
in controller
var workExperiences = _dbContext.WorkExperiences.Where(w => w.UserId == userId);
var viewModel = new ResumeDetailsViewModel
{
WorkExperiences = workExperiences,
};
in view
@if (Model.WorkExperiences.Any())
{
foreach (var workExperience in Model.WorkExperiences)
{
@workExperience.JobTitle
}
}
using ICollection
view model
public class ResumeDetailsViewModel
{
public ICollection<WorkExperience> WorkExperiences { get;set; }
}
in controller
var workExperiences = _dbContext.WorkExperiences.Where(w => w.UserId == userId);
var viewModel = new ResumeDetailsViewModel
{
WorkExperiences = workExperiences.ToList()
};
in view
@if (Model.WorkExperiences.Any())
{
foreach (var workExperience in Model.WorkExperiences)
{
@workExperience.JobTitle
}
}
I want to have least query as possible. In my example both approach creates 2 queries Model.WorkExperiences.Any()
and var workExperience in Model.WorkExperience
for IEnumerable while workExperiences.ToList()
and Model.WorkExperiences.Any()
for ICollection.
Please correct me if I'm wrong with my assumption.
When should I use ICollection or IEnumerable?