private static void UpdateOnlineCourseUsingSetValue(Course course) { using (var ctx = new CoreModelContext()) { //var entry = ctx.Courses.Where(c => c.Id == course.Id).FirstOrDefault(); ctx.OnlineCourses.Load(); var entry = ctx.ChangeTracker.Entries<OnlineCourse>().FirstOrDefault(e => ((int)e.CurrentValues["Id"]) == course.Id); if (entry != null) { entry.CurrentValues.SetValues(course); //Great way to use DTO objects to set only subset of properties without empty out other property values ctx.SaveChanges(); } } }
private static void UpdateCourse(Course course) { using (var ctx = new CoreModelContext()) { ctx.Entry(course).State = course.Id == 0 ? EntityState.Added : EntityState.Modified; ctx.SaveChanges(); } }