Maison >développement back-end >C++ >Comment renvoyer des données jointes de Linq vers SQL sans erreurs de compilation ?
<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>Cependant, essayer d'utiliser un type anonyme pour retourner un chien avec le nom de race correspondant provoquera des erreurs de compilation:
<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>En effet, Linq to SQL prévoit de renvoyer le type de chien, mais la requête génère un type anonyme.
Utilisez la classe personnalisée
<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>Cette méthode crée une classe de chien avec des propriétés du chien et du nom de race. Ensuite, interrogez l'exemple de cette classe personnalisée, qui peut être utilisée pour accéder aux données requises.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!