From 01c6489454b1182124770a4498a9d90c1aea8840 Mon Sep 17 00:00:00 2001 From: Praburaj Date: Fri, 29 Aug 2014 13:41:43 -0700 Subject: [PATCH] Adding a LINQ query to get all albums to improve performance --- .../Controllers/StoreManagerController.cs | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/MusicStore/Areas/Admin/Controllers/StoreManagerController.cs b/src/MusicStore/Areas/Admin/Controllers/StoreManagerController.cs index e7e4f6cd9e..15cf9ba297 100644 --- a/src/MusicStore/Areas/Admin/Controllers/StoreManagerController.cs +++ b/src/MusicStore/Areas/Admin/Controllers/StoreManagerController.cs @@ -23,14 +23,30 @@ namespace MusicStore.Areas.Admin.Controllers public IActionResult Index() { // TODO [EF] Swap to native support for loading related data when available - var albums = db.Albums; - foreach (var album in albums) - { - album.Genre = db.Genres.Single(g => g.GenreId == album.GenreId); - album.Artist = db.Artists.Single(a => a.ArtistId == album.ArtistId); - } + var albums = from album in db.Albums + join genre in db.Genres on album.GenreId equals genre.GenreId + join artist in db.Artists on album.ArtistId equals artist.ArtistId + select new Album() + { + ArtistId = album.ArtistId, + AlbumArtUrl = album.AlbumArtUrl, + AlbumId = album.AlbumId, + GenreId = album.GenreId, + Price = album.Price, + Title = album.Title, + Artist = new Artist() + { + ArtistId = album.ArtistId, + Name = artist.Name + }, + Genre = new Genre() + { + GenreId = album.GenreId, + Name = genre.Name + } + }; - return View(albums.ToList()); + return View(albums); } //