//inserimento record public static void InsertMovie() { CinemaDataContext db = new CinemaDataContext(connectionString); SelectMovies(); var movieToInsert = new Movy(); movieToInsert.Titolo = "LaLaLand"; movieToInsert.Genere = "Romantico"; movieToInsert.Durata = 120; db.Movies.InsertOnSubmit(movieToInsert); //fin qui lavoro in locale ////delete //var deleteMovie = db.Movies.SingleOrDefault(m => m.ID == 2); //if (deleteMovie!= null) //{ // db.Movies.DeleteOnSubmit(deleteMovie); //} try { db.SubmitChanges(); //qui mando le modifiche al database } catch (Exception e) { Console.WriteLine(e); } SelectMovies(); Console.ReadKey(); }
//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 } }