Ich habe ein Entitätsobjekt ‚User‘, die ‚IUser‘ implementiert:Was ist die beste Möglichkeit, jedes Element in einer LINQ to Entities-Abfrage an eine Schnittstelle zu übergeben?
IQueryable<User> users = Db.User;
return users;
Aber was ich will eigentlich zurückzukehren:
IQueryable<IUser>
Also, was der beste Weg ist
konvertierenIQueryable<User>
zu
IQueryable<IUser>
ohne die Abfrage tatsächlich auszuführen? Im Moment mache ich das, aber es scheint wie ein Hack:
IQueryable<IUser> users = Db.User.Select<User, IUser>(u => u);
Craig Stuntz ist korrekt: L2E unterstützt die Cast-Methode nicht. Wenn das fehlschlägt mit: "Kann den Typ 'MyType' nicht umschreiben, um 'MySubTypet' einzugeben. LINQ to Entities unterstützt nur das Generieren primitiver Typen von Entitätsdatenmodell". Ich habe meine Antwort gelöscht, da sie keinen Wert liefert. –
Lädt das nicht die Ergebnisse? Es wird nicht die gesamte Tabelle für jeden Teil der Abfrage erhalten? – Maslow
Welche .NET Version? In .NET 4 sollten Sie in der Lage sein, ein beliebiges IQueryable zu einer Variablen des Typs IQueryable zuzuweisen, ohne dass ein Cast aller Einträge die Liste ist ... –
jessehouwing