public void Delete(string id) { using (var ctx = new DataContext()) { var entity = new HumanDanger() { HumanDangerId = id }; ctx.Entry(entity).State = System.Data.Entity.EntityState.Deleted; ctx.SaveChanges(); } }
public void Save(HumanDangerEntity model) { using (var ctx = new DataContext()) { var entity = ctx.HumanDangers.Include("Measures").FirstOrDefault(x => x.HumanDangerId == model.HumanDangerId); if (entity == null) { entity = new HumanDanger() { HumanDangerId = model.HumanDangerId, Task = model.Task, TaskArea = model.TaskArea, DeptId = model.DeptId, DeptName = model.DeptName, TaskType = model.TaskType, DangerLevel = model.DangerLevel, OtherMeasure = model.OtherMeasure, OperateTime = model.OperateTime, OperateUserId = model.OperateUserId, OperateUser = model.OperateUser, Measures = new List <HumanDangerMeasure>() }; entity.Measures.AddRange(model.Measures.Select(x => new HumanDangerMeasure() { HumanDangerMeasureId = x.HumanDangerMeasureId, Category = x.Category, CategoryId = x.CategoryId, DangerReason = x.DangerReason, MeasureContent = x.MeasureContent, MeasureId = x.MeasureId })); ctx.HumanDangers.Add(entity); } else { entity.Task = model.Task; entity.TaskArea = model.TaskArea; entity.DeptId = model.DeptId; entity.DeptName = model.DeptName; entity.TaskType = model.TaskType; entity.DangerLevel = model.DangerLevel; entity.OtherMeasure = model.OtherMeasure; entity.OperateTime = model.OperateTime; entity.OperateUserId = model.OperateUserId; entity.OperateUser = model.OperateUser; 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(); } }