public ActionResult Edit(CreateOrEditMovieVM createMoiveVM) { //http://stackoverflow.com/questions/9520111/entity-framework-4-not-saving-my-many-to-many-rows?lq=1 Movie movieToBeUpdated = Mapper.Map <Movie>(createMoiveVM); if (ModelState.IsValid) { // Must set to modified or adding child records does not set to modified db.Entry(movieToBeUpdated).State = EntityState.Modified; // Force loading of Actors collection due to lazy loading db.Entry(movieToBeUpdated).Collection(st => st.Actors).Load(); // Clear existing Actors movieToBeUpdated.Actors.Clear(); //http://stackoverflow.com/questions/7478570/entity-framework-code-first-adding-to-many-to-many-relationship-by-id foreach (int receivedActorId in createMoiveVM.ReceviedActors) { var receivedActor = db.Actors.Find(receivedActorId); movieToBeUpdated.Actors.Add(receivedActor); } db.SaveChanges(); return(RedirectToAction("Index")); } return(View(movieToBeUpdated)); }
// GET: Movies/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Movie movie = db.Movies.Find(id); if (movie == null) { return(HttpNotFound()); } CreateOrEditMovieVM model = Mapper.Map <CreateOrEditMovieVM>(movie); //model.ActorList = new MultiSelectList(movie.Actors.ToList(), "ID", "ActorName"); model.ReceviedActors = movie.Actors.Select(a => a.ID).ToArray(); List <SelectListItem> actorList = new List <SelectListItem>(); var queryActionList = from d in db.Actors select new { ID = d.ID, ActorName = d.ActorName, }; model.ActorList = new MultiSelectList(queryActionList.ToList(), "ID", "ActorName"); return(View(model)); }
// GET: Movies/Create public ActionResult Create() { //ref: http://stackoverflow.com/questions/781987/how-can-i-get-this-asp-net-mvc-selectlist-to-work //query all actors, for each of them, assign them to select list item (~ map in js) List <SelectListItem> actorList = new List <SelectListItem>(); var queryActionList = from d in db.Actors select new { ID = d.ID, ActorName = d.ActorName, }; CreateOrEditMovieVM model = new CreateOrEditMovieVM(); model.ReleaseDate = DateTime.Today; model.ActorList = new MultiSelectList(queryActionList.ToList(), "ID", "ActorName"); return(View(model)); }
public ActionResult Create(CreateOrEditMovieVM createMoiveVM) { Movie newMovie = Mapper.Map <Movie>(createMoiveVM); newMovie.Actors = new List <Actor>(); //http://stackoverflow.com/questions/7478570/entity-framework-code-first-adding-to-many-to-many-relationship-by-id foreach (int receivedActorId in createMoiveVM.ReceviedActors) { var receivedActor = db.Actors.Find(receivedActorId); newMovie.Actors.Add(receivedActor); } if (ModelState.IsValid) { db.Movies.Add(newMovie); try { db.SaveChanges(); } catch (DbEntityValidationException dbEx) { foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); } } } return(RedirectToAction("Index")); } return(View(newMovie)); }