Heim >Backend-Entwicklung >C++ >Wie kann ich anonyme Typen von linq an SQL -Abfragen zurückgeben?
Bei der Verwendung von LINQ zu SQL, um mehrere Tabellen zu verarbeiten, kann die Rückgabe anonymer Typen auf Herausforderungen stoßen. Bitte betrachten Sie das folgende Beispiel:
Originalmethode:
Diese Methode holt alle Hundeinformationen erfolgreich ab. Wenn wir jedoch versuchen, Hunde und seine Sortennamen abzurufen:
<code class="language-csharp">public IQueryable<dog> GetDogs() { var db = new DogDataContext(ConnectString); var result = from d in db.Dogs join b in db.Breeds on d.BreedId equals b.BreedId select d; return result; }</code>
Wir werden Fehler treffen, da der Compiler erwartet, den Hundetyp und nicht den anonymen Typ zurückzugeben.
<code class="language-csharp">public IQueryable<dog> GetDogsWithBreedNames() { var db = new DogDataContext(ConnectString); var result = from d in db.Dogs join b in db.Breeds on d.BreedId equals b.BreedId select new { Name = d.Name, BreedName = b.BreedName }; return result; }</code>Alternative Methode: Benutzerdefinierte Klasse
Eine Lösung besteht darin, eine benutzerdefinierte Klasse wie DogwithBreed zu erstellen:
Dann können Sie den Code wie folgt ändern:
<code class="language-csharp">public class DogWithBreed { public Dog Dog { get; set; } public string BreedName { get; set; } }</code>Diese Methode bietet eine Art sichere und wiederverwendbare Lösung, obwohl zusätzliche Codierungsarbeiten erforderlich sind. Durch die Auswahl einer benutzerdefinierten Klasse können die Art der nicht übereinstimmenden Arten von anonymen Typen vermeiden und die Wartung und Lesbarkeit des Codes verbessern.
Das obige ist der detaillierte Inhalt vonWie kann ich anonyme Typen von linq an SQL -Abfragen zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!