我正在尝试在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 回答
Include
不是Queryable
上的扩展方法,因此它不会与所有常用的LINQ方法结合在一起 . 如果您使用的是Entity Framework,则需要导入相应的命名空间:如果您使用.Net核心版本,则需要安装:Microsoft.EntityFrameworkCore nuget package .
然后:
为遇到此问题的其他人提供了一些帮助 even after including the using directive . 乔恩提到了它,但我只是想说清楚,即使在阅读了答案之后我也被困了一段时间,对不起,如果看起来很明显但可能会节省一些时间 .
对我来说问题是参考,这是 Entity Framework . 使用Nuget安装EF之后,.Include()像往常一样工作 .
这让我感到很震惊,因为include()的相同代码在我的主项目(mvc app)中工作,但是在同一解决方案中没有工作,即使使用“使用”,因为它缺少EF . 希望这能节省一些时间 .
(我使用EF 7与ASP.NET 5 Preview,DNX 5.0 Framework)
添加这个解决了我的 -
使用Microsoft.Data.Entity;
注意:它不是 System .Data.Entity
如果您正在寻找Jon正在讨论的方法,您需要导入以下命名空间:
MSDN Link
如果直接部署到存储库,则可以使用
Include()
,如下面的示例代码所示: