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

Ego*_*gor 40 c# linq

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

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

我的代码:

var allCaseTypes = Uow.InsuranceCaseType.GetAll().Include(a=>a.Geos);
Run Code Online (Sandbox Code Playgroud)

方法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;
Run Code Online (Sandbox Code Playgroud)

Jon*_*Jon 108

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

using System.Data.Entity;
Run Code Online (Sandbox Code Playgroud)

  • 我已经导入了这个命名空间,但它没有帮助 (11认同)
  • 此信息不再准确."Include"扩展方法现在位于`System.Data.Entity.Infrastructure`中,该方法位于`EntityFramework.dll`程序集中.引用该程序集使用该方法. (2认同)
  • 对于EFcore,这是:使用Microsoft.EntityFrameworkCore; (2认同)

小智 16

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

然后:

using Microsoft.EntityFrameworkCore;
Run Code Online (Sandbox Code Playgroud)


Rob*_*ert 6

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

我的问题是参考,即实体框架.使用Nuget安装EF之后,.Include()像往常一样工作.

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


Sta*_*hed 5

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

添加这个解决了我的 -

使用Microsoft.Data.Entity;

注意:它不是System .Data.Entity