public AudioAlbumDataForJSON getLatestSingle(int artistId) { var pRepo = new PhotoRepository(new yslDataContext()); var aRepo = new AudioAlbumItemRepository(new yslDataContext()); AudioAlbumDataForJSON result; try { List<AudioAlbumDataForJSON> source = ( from b in this.db.AudioAlbums where b.ArtistId == artistId select b into s orderby s.Created descending select s).Join(this.db.Photos, (AudioAlbum a) => a.PhotoId, (Photo p) => p.PhotoId, (AudioAlbum, Photo) => new AudioAlbumDataForJSON { artist = AudioAlbum.Artist.Name, audioAlbumId = AudioAlbum.AudioAlbumId, photo = pRepo.getPhotoAsModel(Photo), title = AudioAlbum.Title, tracks = aRepo.getAudioAlbumItemAsModel(AudioAlbum.AudioAlbumItems.ToList()) }).ToList<AudioAlbumDataForJSON>(); result = source.First<AudioAlbumDataForJSON>(); } catch { result = new AudioAlbumDataForJSON(); } return result; }