À l'aide de l'exemple simple ci-dessous, quelle est la meilleure façon de renvoyer les résultats à partir de plusieurs tables à l'aide de Linq to Sql?
Dire que j'ai deux tables:
Chiens: Nom, Âge, BreedId
Races: BreedId, BreedName
Je veux retourner tous les chiens avec leur BreedName
. Je devrais obtenir tous les chiens à l'aide de quelque chose comme ça avec aucun des problèmes:
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;
}
Mais si je veux des chiens avec des races et essayer ce que j'ai des problèmes:
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;
}
Maintenant je me rends compte que le compilateur ne me permet pas de renvoyer un ensemble de types anonymes, car il s'attend à des Chiens, mais est-il un moyen de retourner ce, sans avoir à créer un type personnalisé? Ou dois-je créer ma propre classe pour DogsWithBreedNames
et de préciser que le type dans le select? Ou est-il un autre moyen plus facile?
Merci à l'avance.