include关键字不提供带扩展方法的过滤器

时间:2014-10-10 06:18:07

标签: linq

我想使用include关键字和一些选择:

context.Categories.Include(c => c.Products)

我在互联网上搜索并找到以下方法:

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 System.Reflection.PropertyInfo).Name);
        }
    }

当我在我的项目中复制粘贴此方法时以及当我键入

context.category.include()//

然后它只是让我使用字符串作为参数:

context.category.include("");//like this

我想使用这样的include关键字:

 context.Categories.Include(c => c.Products)

任何人都可以告诉我这个问题吗?

1 个答案:

答案 0 :(得分:0)

您必须在此扩展方法中将属性作为字符串放置:

context.category.include("Products");

Include()的dafault System.Data.Entity也采用字符串路径:

public ObjectQuery<T> Include(
    string path
)

您可以参考MSDN Include() docs