我正在尝试使用Ladislav Mrnka的建议here来使用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
using System.Data.Entity;

namespace SimTask.Data.EF4
{
    public static class Extensions
    {
        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;
        }

    }
}

但是我得到一个错误。编译器无法识别current.Include:
Error   7   'System.Linq.IQueryable<T>' does not contain a definition for 'Include' and no extension method 'Include' accepting a first argument of type 'System.Linq.IQueryable<T>' could be found (are you missing a using directive or an assembly reference?)   C:\MySolution\MyProj.Data.EF4\Extensions.cs 19  57  MyProj.Data.EF4

我从here安装了ADO.NET Entity Framework 4.1。

最佳答案

两件事情:

1)您需要对using的引用(和System.Data.Entity),也就是在其中定义Include的地方:

using System.Data.Entity;

2)您的类应标记为publicstatic,否则您不能在其中添加扩展方法:
public static class Extensions
{

编辑:

您还需要在项目中包括EntityFramework-如果在项目中扩展引用,则应该会看到EntityFramework

最简单的添加方法是通过Nuget:

1.)打开程序包管理器控制台( View |其他Windows |程序包)
管理器控制台)

2.)类型Install-Package EntityFramework

关于c# - Ladislav Mrnka关于使用Include的建议,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5765291/

10-17 00:57