Heim >Backend-Entwicklung >C++ >Wie kann ich mit Daten von Linq ohne Kompilierungsfehler an SQL zurückgegeben werden?
<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>Der Versuch, einen anonymen Typ zu verwenden, um einen Hund mit dem entsprechenden BreedName zurückzugeben, verursacht Kompilierungsfehler:
<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>Dies liegt daran, dass LINQ bis SQL erwartet, den Hundetyp zurückzugeben, aber die Abfrage erzeugt einen anonymen Typ.
Verwenden Sie die benutzerdefinierte Klasse
<code class="language-csharp">public class DogWithBreed { public Dog Dog { get; set; } public string BreedName { get; set; } } public IQueryable<DogWithBreed> 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 DogWithBreed() { Dog = d, BreedName = b.BreedName }; return result; }</code>Diese Methode erzeugt eine Hunde, die die Eigenschaften von Hund und Züchtername enthält. Fragen Sie dann das Beispiel dieser benutzerdefinierten Klasse ab, mit dem Sie auf die erforderlichen Daten zugreifen können.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Daten von Linq ohne Kompilierungsfehler an SQL zurückgegeben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!