Der Typ IEnumerable <T> kann nicht implizit in IQueryable <T> konvertiert werden
Verschleiertes Szenario: Eine Person hat null, ein oder mehrere Haustiere.
Wenn Sie Linq to Sql verwenden, müssen Sie eineIQueryable
Liste der Haustiere für die angegebene personID. Hier ist der schlecht verstümmelte / geschlachtete / verschleierte Teil des ERD:
Code:
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
}
Ausnahme ausgelöst:
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?)
Fehlgeschlagene Versuche:
Direktes Casting hat nicht funktioniert:(IQueryable<MyType>)
Sammelmethode aufrufenAsQueryable
hat nicht funktioniert:.AsQueryable<MyType>()
Frage:
Wie können Sie die Ergebnisse der LinqToSql-Abfrage richtig umsetzen?IQueryable
?