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>
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>
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!