首页 文章

IQueryable <T>不包含'Include'的定义,也没有扩展方法'Include'

提问于
浏览
37

我正在尝试在IQueryable集上使用Include扩展,但我有以下问题:

错误1'System.Linq.IQueryable <.Model.InsuranceCaseType>'不包含'Include'的定义,也没有扩展方法'Include'接受类型为'System.Linq.IQueryable <.Model.InsuranceCaseType>的第一个参数'可以找到(你错过了使用指令或程序集引用吗?)

我的代码:

var allCaseTypes = Uow.InsuranceCaseType.GetAll().Include(a=>a.Geos);

方法 GetAll() 返回 - IQueryable<.Model.InsuranceCaseType>

我在范围内有以下命名空间:

using System.Collections;
using System.Collections.Generic;
using System;
using System.Data;
using System.Linq;
using System.Data.Entity;
using System.IO;
using System.Web;
using System.Web.Mvc;

6 回答

  • 5

    Include 不是 Queryable 上的扩展方法,因此它不会与所有常用的LINQ方法结合在一起 . 如果您使用的是Entity Framework,则需要导入相应的命名空间:

    using System.Data.Entity;
    
  • 11

    如果您使用.Net核心版本,则需要安装:Microsoft.EntityFrameworkCore nuget package .

    然后:

    using Microsoft.EntityFrameworkCore;
    
  • 2

    为遇到此问题的其他人提供了一些帮助 even after including the using directive . 乔恩提到了它,但我只是想说清楚,即使在阅读了答案之后我也被困了一段时间,对不起,如果看起来很明显但可能会节省一些时间 .

    对我来说问题是参考,这是 Entity Framework . 使用Nuget安装EF之后,.Include()像往常一样工作 .

    这让我感到很震惊,因为include()的相同代码在我的主项目(mvc app)中工作,但是在同一解决方案中没有工作,即使使用“使用”,因为它缺少EF . 希望这能节省一些时间 .

  • 5

    (我使用EF 7与ASP.NET 5 Preview,DNX 5.0 Framework)

    添加这个解决了我的 -

    使用Microsoft.Data.Entity;

    注意:它不是 System .Data.Entity

  • 0

    如果您正在寻找Jon正在讨论的方法,您需要导入以下命名空间:

    using System.Data.Entity.QueryableExtensions
    

    MSDN Link

  • 104

    如果直接部署到存储库,则可以使用 Include() ,如下面的示例代码所示:

    public IQueryable<Colaborador> FindAll()
    {
         var retRepository = from colaborador in All()
                                .Include(x => x.Cliente)
                                select colaborador;
    
         return retRepository;
    }
    

相关问题