Використовуючи простий приклад нижче, який найкращий спосіб повернути результати з декількох таблиць за допомогою Linq в SQL?
Скажіть, у мене дві таблиці:
Dogs: Name, Age, BreedId
Breeds: BreedId, BreedName
Я хочу повернути всіх собак зі своїми BreedName
. Я мав би всіх собак використовувати щось подібне без проблем:
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;
}
Але якщо я хочу собак з породами і спробувати це, у мене є проблеми:
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;
}
Тепер я розумію, що компілятор не дозволить мені повернути набір анонімних типів, оскільки очікує на Собак, але чи є спосіб повернути це без створення спеціального типу? Або мені потрібно створити власний клас для DogsWithBreedNames
та вказати цей тип у виділеному? Або є інший простіший спосіб?
foreach (var cust in query) Console.WriteLine("id = {0}, City = {1}", cust.CustomerID, cust.City);