it:ad:ef:howto:query

var departments = context.Departments;
foreach(var d in departments){  //Query #1
  foreach(Cource c in d.Courses){  //Query #2
    ...         
  }
}
var departments = context.Departmetns.Include(d=>d.Courses)
foreach (var d in deaprtments){ //Query #1
  ...
}

Same result as lazy really:

var departments = context.Departments;
foreach(var d in departments){  //Query #1
  context.Entry(d).Collection(x=>x.Courses).Load();//Query #2
  foreach(Cource c in d.Courses){  
     ...
  }
}
  • You need to include System.Data.Entity before you can use Linq Include (rather than specifying everything with strings).
  • Absolute genius solution defined here

Example:

public static IQueryable<T> IncludeMultiple<T>(this IQueryable<T> query, params Expression<Func<T, object>>[] includes)
where T : class 
{
  if (includes != null)
  {
    query = includes.Aggregate(query, 
              (current, include) => current.Include(include));
  }

  return query;
}

 
  • /home/skysigal/public_html/data/pages/it/ad/ef/howto/query.txt
  • Last modified: 2023/11/04 01:42
  • by 127.0.0.1