//Update Movie public static void UpdateMovieByTitolo() { CinemaDataContext db = new CinemaDataContext(connectionString); Console.WriteLine("Dimmi il titolo del film da aggiornare: "); string titolo; titolo = Console.ReadLine(); //Query IQueryable <Movy> filmByTitolo = from film in db.Movies where film.Titolo == titolo select film; Console.WriteLine("I film trovati sono: {0}", filmByTitolo.Count()); if (filmByTitolo.Count() == 0) { return; } if (filmByTitolo.Count() > 1) { return; } SelectMovies(); Console.WriteLine("Scrivere i valori aggiornati:"); Console.WriteLine("Titolo: "); string title = Console.ReadLine(); Console.WriteLine("Genere: "); string genere = Console.ReadLine(); Console.WriteLine("Durata: "); int durata = Convert.ToInt32(Console.ReadLine()); foreach (var f in filmByTitolo) { f.Titolo = title; f.Genere = genere; f.Durata = durata; } //Gestione concorrenza try { Console.WriteLine("Premi un tasto per mandare modifiche al db"); Console.ReadKey(); db.SubmitChanges(ConflictMode.FailOnFirstConflict); //gestione di come mandare le eccezioni } catch (ChangeConflictException e) { Console.WriteLine("Concurrency error: "); Console.WriteLine(e.Message); Console.ReadKey(); //OverwriteCurrentValues->ignora le mie modifiche(aggiorna il mio obj model) //KeepCurrentValues->ignora le modifiche altrui(sovrascrive il db con il mio obj model) //KeepChanges->cerca di tenere entrambe le modifiche db.ChangeConflicts.ResolveAll(RefreshMode.OverwriteCurrentValues); db.SubmitChanges(); //da fare sempre } }