Entity Framework Include avec Func
Si vous voulez charger les catégories avec les produits, vous allez utiliser la méthode Include:
context.Categories.Include("Products")
Mais ce que je trouve vraiment nul (et je suis pas le seul), c'est qu'il faille utiliser Products sous la forme d'un string. C'est encore plus choquant de devoir faire ça dans une requête LINQ.
J'ai donc défini une extension method qui permet de saisir un Func à la place d'un string :
public static class ObjectQueryExtension
{
public static ObjectQuery<T> Include<T>(this ObjectQuery<T> mainQuery, Expression<Func<T, object>> subSelector)
{
return mainQuery.Include(((subSelector.Body as MemberExpression).Member as Reflection.PropertyInfo).Name);
}
}
Et je peux maintenant faire:
context.Categories.Include(c => c.Products)
ce que je trouve vraiment mieux.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :