public static void saveResults(List <Tb_taskResult> taskResultList) { using (EFMySqlDbContext context = new Db.EFMySqlDbContext()) { using (var transaction = context.Database.BeginTransaction()) { try { for (int i = 0; i < taskResultList.Count; i++) { context.Tb_taskResults.Add(taskResultList[i]); context.SaveChanges(); context.Entry(taskResultList[i]); int resultId = taskResultList[i].id; string supple = taskResultList[i].supplement; ResultSupplement resultSupp = ResultSupplement.fromJson(supple); if (resultSupp != null) { foreach (var item in resultSupp.alarmInputList) { Tb_alarminput alarm = new Tb_alarminput(); alarm.taskId = taskResultList[i].taskId; alarm.resultId = resultId; alarm.alarmType = item.alarmType; alarm.alarmForm = item.alarmForm; alarm.classify = item.classify; alarm.describe = item.describe; context.Tb_alarminputs.Add(alarm); context.SaveChanges(); } } //context.Tb_alarminputs.Add() } transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } //context.Tb_taskResults.AddRange(taskResultList); //context.SaveChanges(); } }
/// <summary> /// 新增任务,及任务相关的表(任务指标映射表、任务生命周期表) /// </summary> /// <param name="task"></param> /// <param name="indicatorIdList"></param> public static void createTask(Tb_taskInfo task, List <int> indicatorIdList, Dictionary <int, List <int> > brandModelIdDic) { using (EFMySqlDbContext context = new Db.EFMySqlDbContext()) { using (var transaction = context.Database.BeginTransaction()) { try { //新增任务信息 context.Tb_taskInfos.Add(task); context.SaveChanges(); context.Entry(task); int taskId = task.id; //添加任务生命周期 Tb_taskLifecycle lifecycle = new Tb_taskLifecycle(); lifecycle.taskId = taskId; lifecycle.taskStateDateTime = DateTime.Now; lifecycle.taskStateChangeExecutor = User.currentUser.name; lifecycle.taskState = (int)TaskStateEnum.Created; lifecycle.remark = string.Empty; context.Tb_taskLifecycles.Add(lifecycle); context.SaveChanges(); //添加任务型号映射 List <Tb_taskModelMap> tmmList = new List <Entity.Tb_taskModelMap>(); foreach (int brandId in brandModelIdDic.Keys) { foreach (int modelId in brandModelIdDic[brandId]) { Tb_taskModelMap tmm = new Tb_taskModelMap(); tmm.taskId = taskId; tmm.brandId = brandId; tmm.ModelId = modelId; tmmList.Add(tmm); } } context.Tb_taskModelMaps.AddRange(tmmList); context.SaveChanges(); //添加任务指标映射 List <Tb_taskIndicatorMap> timList = new List <Tb_taskIndicatorMap>(); foreach (int indicatorId in indicatorIdList) { Tb_taskIndicatorMap tim = new Tb_taskIndicatorMap(); tim.taskId = taskId; tim.indicatorId = indicatorId; timList.Add(tim); } context.Tb_taskIndicatorMaps.AddRange(timList); context.SaveChanges(); //提交数据库 transaction.Commit(); //更新任务生命周期缓存 TaskLifecycleCache.addCacheOnly(lifecycle); //更新品牌型号映射缓存 foreach (var tmm in tmmList) { TaskModelMapCache.addCacheOnly(tmm); } //更新指标映射缓存 foreach (var tim in timList) { TaskIndicatorMapCache.addCacheOnly(tim); } } catch (Exception ex) { transaction.Rollback(); throw ex; } } } }