No se puede convertir implícitamente el tipo IEnumerable <T> a IQueryable <T>
Escenario ofuscado: Una persona tiene cero, una o muchas mascotas.
Usando Linq a Sql, la necesidad es obtener unIQueryable
Lista de mascotas para la persona identificada. Aquí está la parte maltratada / destrozada / ofuscada de la ERD:
Código:
public IQueryable<Pet> GetPersonPets(int personID)
{
var personPets= from p in Person
where p.ID == somePersonID
select p.Pets;
return personPets; //fail
// return (IQueryable<Pet>)personPets //also fail
// return personPets.AsQueryable<Pet>() //also fail
}
Excepción planteada:
Cannot implicitly convert type 'System.Collections.Generic.IEnumerable (System.Data.Linq.EntitySet(Pet))' to 'System.Linq.IQueryable(Pet)'. An explicit conversion exists (are you missing a cast?)
Intentos fallidos:
El casting directo no funcionó:(IQueryable<MyType>)
Método de recogida de llamadasAsQueryable
no funcionó:.AsQueryable<MyType>()
Pregunta:
¿Cómo puede convertir los resultados de la consulta LinqToSql correctamente paraIQueryable
?