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?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage