Используя простой пример, приведенный ниже, каков наилучший способ вернуть результаты из нескольких таблиц с использованием 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? Или есть другой, более простой способ?