public async Task <IActionResult> Edit(Guid id) { var book = await _context.Books.Include(it => it.Authors).Include(it => it.Cover).SingleAsync(it => it.Id.Equals(id)); var authors = book.Authors.Select(it => it.AuthorId); var authorSelectList = _context.Authors.AsNoTracking().Select(it => new SelectListItem { Selected = authors.Contains(it.Id), Value = it.Id.ToString(), Text = it.Name }); var cover = _fileUpload.UrlFor(book.Cover?.Path); var viewModel = new EditBookViewModel { Id = book.Id, Title = book.Title, Authors = authors, AuthorSelectList = authorSelectList, Cover = cover }; return(View(viewModel)); }