c# - framework - IQueryable<T> no contiene una definición para ''Incluir'' y ningún método de extensión ''Incluir''
include linq c# (6)
Intento usar Incluir extensión en el conjunto IQueryable, pero tengo el siguiente problema:
El error 1 ''System.Linq.IQueryable <.Model.InsuranceCaseType>'' no contiene una definición para ''Include'' y ningún método de extensión ''Include'' acepta un primer argumento de tipo ''System.Linq.IQueryable <.Model.InsuranceCaseType>'' podría encontrarse (¿falta una directiva de uso o una referencia de ensamblado?)
Mi código:
var allCaseTypes = Uow.InsuranceCaseType.GetAll().Include(a=>a.Geos);
Método GetAll()
devuelve - IQueryable<.Model.InsuranceCaseType>
Tengo en alcance los siguientes espacios de nombres:
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;
(Estoy usando EF 7 con ASP.NET 5 Preview, DNX 5.0 Framework)
Añadiendo esta mina resuelta
usando Microsoft.Data.Entity;
Nota: No es System .Data.Entity
Alguna ayuda adicional para otras personas que experimentan este problema incluso después de incluir la directiva de uso . Jon lo mencionó, pero solo quiero dejarlo en claro, ya que incluso después de leer la respuesta me quedé estancado por un tiempo, lo siento si parece obvio, pero podría salvar a alguien más en algún momento.
El problema para mí fue la referencia, que era Entity Framework . Después de usar Nuget para instalar EF, .Include () funcionó como de costumbre.
Esto me tiró porque el mismo código con el include () estaba trabajando en mi proyecto principal (aplicación mvc) pero no estaba trabajando en un proyecto diferente en la misma solución, incluso con el "uso", ya que le faltaba EF. Espero que esto le ahorre a alguien más algo de tiempo.
Si está buscando el método del que habla Jon, deberá importar el siguiente espacio de nombre:
using System.Data.Entity.QueryableExtensions
Si está utilizando la versión .Net core, entonces necesita instalar: el paquete nuget Microsoft.EntityFrameworkCore.
Y entonces:
using Microsoft.EntityFrameworkCore;
Si implementa directamente en su repositorio, puede usar Include()
, como se muestra en el siguiente código de ejemplo:
public IQueryable<Colaborador> FindAll()
{
var retRepository = from colaborador in All()
.Include(x => x.Cliente)
select colaborador;
return retRepository;
}
Include
no es un método de extensión en Queryable
, por lo que no se Queryable
con todos los métodos LINQ habituales. Si está utilizando Entity Framework, debe importar el espacio de nombre correspondiente:
using System.Data.Entity;