public async Task UpdateGenreAndGames(int removeId, int moveToId) { using (_ctx = new RetroDbContext(conString)) { var transaction = await _ctx.Database.BeginTransactionAsync(); try { //games to change var games = _ctx.Games.Where(x => x.GenreId == removeId); foreach (var game in games) { game.GenreId = moveToId; } //Genre to keep var genre = _ctx.Genres.FirstOrDefault(x => x.Id == removeId); if (genre != null) { _ctx.Genres.Remove(genre); } _ctx.UpdateRange(games); await _ctx.SaveChangesAsync(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw; } } }
public Task SaveAsync() => _ctx.SaveChangesAsync();