Reputation: 1207
I am using entity framework and I can't find include method like in this example:
using(ArticleExtractorEntities db=new ArticleExtractorEntities())
{
Preference pref= db.Preferences.Include(
here i find only the function include with the parameter (string path) and I don't find any other overload so how can I use Include with lambda expression?
Upvotes: 39
Views: 18508
Reputation: 1672
Update. For those looking how it extend your linq query with .Include()
No longer is it:
using System.Data.Entity;
With netcoreapp1.0 it is:
using Microsoft.EntityFrameworkCore;
Upvotes: 12
Reputation: 269
Look at the following articles:
http://www.thomaslevesque.com/2010/10/03/entity-framework-using-include-with-lambda-expressions/
http://msmvps.com/blogs/matthieu/archive/2008/06/06/entity-framework-include-with-func-next.aspx
Upvotes: 0
Reputation: 1038770
You could implement it as shown in this blog post:
public static class ObjectQueryExtension
{
public static ObjectQuery<T> Include<T>(this ObjectQuery<T> mainQuery, Expression<Func<T, object>> subSelector)
{
return mainQuery.Include(FuncToString(subSelector.Body));
}
private static string FuncToString(Expression selector)
{
switch (selector.NodeType)
{
case ExpressionType.MemberAccess:
return ((selector as MemberExpression).Member as Reflection.PropertyInfo).Name;
case ExpressionType.Call:
var method = selector as MethodCallExpression;
return FuncToString(method.Arguments[0]) + "." + FuncToString(method.Arguments[1]);
case ExpressionType.Quote:
return FuncToString(((selector as UnaryExpression).Operand as LambdaExpression).Body);
}
throw new InvalidOperationException();
}
public static K Include<T, K>(this EntityCollection<T> mainQuery, Expression<Func<T, object>> subSelector)
where T : EntityObject, IEntityWithRelationships
where K : class
{
return null;
}
public static K Include<T, K>(this T mainQuery, Expression<Func<T, object>> subSelector)
where T : EntityObject
where K : class
{
return null;
}
}
Upvotes: 1
Reputation: 60493
it's not in System.Linq. Add
using System.Data.Entity
Upvotes: 98