我正在尝试在IQueryable集上使用Include扩展,但我有以下问题:
错误1'System.Linq.IQueryable< .Model.InsuranceCaseType>' 不包含“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;
答案 0 :(得分:105)
Include
不是Queryable
上的扩展方法,因此它不会与所有常用的LINQ方法结合在一起。如果您使用的是Entity Framework,则需要导入相应的命名空间:
using System.Data.Entity;
答案 1 :(得分:12)
如果您使用.Net核心版本,则需要安装: Microsoft.EntityFrameworkCore nuget包。
然后:
using Microsoft.EntityFrameworkCore;
答案 2 :(得分:5)
即使在包含using指令之后,对于遇到此问题的其他人也会有一些帮助。 Jon提到了它,但我只是想说清楚,即使在阅读了答案之后我也会被困住一段时间,抱歉,如果它看起来很明显但可能会节省一些时间。
我的问题是参考,它是实体框架。使用Nuget安装EF后,.Include()照常工作。
这让我失望,因为include()的相同代码在我的主项目(mvc应用程序)中工作,但是在同一解决方案中不使用其他项目,即使使用“使用”,因为它缺少EF。希望这能节省一些时间。
答案 3 :(得分:5)
(我正在使用EF 7与ASP.NET 5 Preview,DNX 5.0 Framework)
添加此解决方案 -
使用Microsoft.Data.Entity;
注意:它不是系统 .Data.Entity
答案 4 :(得分:2)
答案 5 :(得分:-1)
如果直接部署到存储库,则可以使用Include()
,如下面的示例代码所示:
public IQueryable<Colaborador> FindAll()
{
var retRepository = from colaborador in All()
.Include(x => x.Cliente)
select colaborador;
return retRepository;
}