У меня проблемы с запросом linq. Это простая проблема, но я не уверен, как лучше всего к ней подойти. У меня есть две таблицы (я только показываю соответствующие поля) с именами Artist
и Song
:
ARTIST - int ArtistID (pk)
varchar Name
SONG - int SongID (pk)
uniqueidentifier UserID (To lookup songs the user has added to their account)
int ArtistID (foreign key to ArtistID in Artist table)
varchar songName
Что я хотел бы сделать, это создать метод в моем DAL, который извлекает все песни пользователя (с учетом идентификатора пользователя) и отображает его в ретрансляторе, который объединяет имя исполнителя с песней (так что конечный результат будет быть ArtistName - songName
). Я создал этот запрос:
var query = from p2 in db.SONG
where p2.UserID == givenUserID
join p in db.ARTIST
on p2.ArtistID equals p.ArtistID
select new ArtistSongStruct
{
ArtistName = p.Name,
songName = p2.songName
};
return query;
Это работает до такой степени, что я могу отлаживать на своем бизнес-уровне и читать правильные значения. Однако ArtistSongStruct
- это пользовательская структура, которую я создал в DAL только для этого метода. Я не уверен, что это хороший способ делать вещи. Во-вторых, даже если это возвращается на бизнес-уровень, я не могу заставить повторитель показывать фактические значения. Он отображает ошибку, утверждая, что нет свойства с именем ArtistName/songName
.
Каков наилучший способ вернуть исполнителя и его песню на основе ArtistID?
Спасибо за любые предложения. Я совсем новичок в L2S, так что это немного сбивает с толку.