Ja, es gibt andere Möglichkeiten (ziemlich viele tatsächlich), aber ich schlage vor, dass Sie keine von ihnen verwenden. Die beste Möglichkeit, diesen Fall zu bearbeiten, besteht darin, einen neuen benutzerdefinierten Typ zu erstellen, der die Daten enthält, die Sie haben. Es wird bei weitem die wartungsfreundlichste Option sein.
Anonyme Typen wurden speziell für den Einsatz im Rahmen einer einzigen Methode entwickelt. Sie kämpfen gegen das Design der Funktionalität, die Sie sonst tun müssen, und so wird es schwierig sein, Sie werden Intellisense wahrscheinlich verlieren, die Leistung wird höchstwahrscheinlich leiden und der arme SAP, der zurückkommen und den Code pflegen muss habe keine Ahnung, was los ist oder wie ich die Abfrage anpassen soll.
Das primäre Problem mit den meisten alternativen Lösungen ist, dass Sie die Überprüfung der Kompilierzeit verlieren. Wenn die Abfrage einen Parameter entfernt, einen Parameter hinzufügt, einen Typ ändert, usw., hat der Code, der ihn verwendet, keine Möglichkeit zu wissen. Wenn Sie Code schreiben, um eine Abfrage zu verwenden, haben Sie keine Möglichkeit zu wissen, was alle Daten sind, was ihre Typen sind, wie die Namen der Variablen lauten usw. Sie müssen sich über Tippfehler in Variablennamen Gedanken machen, die der Compiler kann Fangen Sie nicht, und Sie müssen sich ständig die internen Abläufe der Methode ansehen, die die Abfrage generiert. Sie verlieren die Fähigkeit, es als Black Box oder Abstraktion zu behandeln, was von Bedeutung ist.
Wenn Sie über die Zeit und den Aufwand für die Erstellung dieser benutzerdefinierten Typen besorgt sind, gibt es eine Reihe automatisierter Tools, die solche Klassen basierend auf Datenbanktabellen oder anderen Quellen generieren können.
+1, ich sehe keinen Grund, _not_ keinen benutzerdefinierten Typ zu erstellen. –