Используя простой пример ниже, каков наилучший способ вернуть результаты из нескольких таблиц с использованием Linq to 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;
}
Теперь я понимаю, что компилятор не позволит мне вернуть набор анонимных типов, поскольку он ожидает Dogs, но есть ли способ вернуть это без необходимости создания настраиваемого типа? Или мне нужно создать свой собственный класс для DogsWithBreedNames
и указать этот тип в select? Или есть еще один более простой способ?