public void Approve(HumanDangerEntity model, ApproveRecordEntity approve) { using (var ctx = new DataContext()) { var entity = ctx.HumanDangers.Include("Measures").FirstOrDefault(x => x.HumanDangerId == model.HumanDangerId); entity.TaskArea = model.TaskArea; entity.TaskType = model.TaskType; entity.DangerLevel = model.DangerLevel; entity.State = model.State; for (int i = 0; i < entity.Measures.Count; i++) { var measure = model.Measures.Find(x => x.HumanDangerMeasureId == entity.Measures[i].HumanDangerMeasureId); if (measure == null) { ctx.Entry(entity.Measures[i]).State = System.Data.Entity.EntityState.Deleted; i--; } else { entity.Measures[i].CategoryId = measure.CategoryId; entity.Measures[i].Category = measure.Category; entity.Measures[i].MeasureId = measure.MeasureId; entity.Measures[i].DangerReason = measure.DangerReason; entity.Measures[i].MeasureContent = measure.MeasureContent; } } var newitems = model.Measures.Where(x => !entity.Measures.Any(y => y.HumanDangerMeasureId == x.HumanDangerMeasureId)); entity.Measures.AddRange(newitems.Select(x => new HumanDangerMeasure() { HumanDangerMeasureId = x.HumanDangerMeasureId, Category = x.Category, CategoryId = x.CategoryId, DangerReason = x.DangerReason, MeasureContent = x.MeasureContent, MeasureId = x.MeasureId })); ctx.SaveChanges(); } var db = DbFactory.Base() as Database; db.dbcontext.Set <ApproveRecordEntity>().Add(approve); db.dbcontext.SaveChanges(); }
public void Approve(HumanDangerEntity model, ApproveRecordEntity approve) { IHumanDangerService service = new HumanDangerService(); service.Approve(model, approve); }