public ActionResult Create(SkillModel skill) { if (ModelState.IsValid) { var newSkill = new Skill { Name = skill.Name, Desc = skill.Desc, Min = skill.Min, Max = skill.Max }; // related skills foreach (var id in skill.SelectedSkillIds) { var relSkill = db.Skills.Single(x => x.Id == id); newSkill.AddSkillRelation(relSkill); } // related Labors foreach (var id in skill.SelectedLaborIds) { var relLab = db.Products.Single(x => x.Id == id); newSkill.ValidLabors.Add(relLab); relLab.Skills.Add(newSkill); } // do not connect to jobs here. Jobs should decide who they relate to. db.Skills.Add(newSkill); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(skill)); }