public static T getById <T>(int id) where T : BaseEntity { using (EFMySqlDbContext context = new Db.EFMySqlDbContext()) { return(context.getDbSet <T>().FirstOrDefault(i => i.id == id)); } }
public static void updateMap(int templateId, List <int> indicatorIdList) { using (EFMySqlDbContext context = new Db.EFMySqlDbContext()) { using (var transaction = context.Database.BeginTransaction()) { try { var listToDel = context.Tb_indicatorTemplateMaps.Where(itm => itm.templateId == templateId); context.Tb_indicatorTemplateMaps.RemoveRange(listToDel); foreach (int indicatorId in indicatorIdList) { context.Tb_indicatorTemplateMaps.Add(new Entity.Tb_indicatorTemplateMap() { templateId = templateId, indicatorId = indicatorId }); } context.SaveChanges(); transaction.Commit(); } catch (Exception) { transaction.Rollback(); } } } }
public static List <queryClassifyResult> selectClassifyNum() { string sql = @"SELECT COUNT(1) as number,taskClass FROM tb_taskinfo WHERE taskState in(5004,5005) GROUP BY taskClass"; using (EFMySqlDbContext context = new Db.EFMySqlDbContext()) { return(context.Database.SqlQuery <queryClassifyResult>(sql).ToList()); } }
public static void save <T>(T t) where T : BaseEntity { using (EFMySqlDbContext context = new Db.EFMySqlDbContext()) { try { context.getDbSet <T>().Add(t); context.SaveChanges(); } catch (Exception ex) { throw new Exception("保存失败:" + ex.Message); } } }
public static IList <T> getAll <T>() where T : BaseEntity { try { using (EFMySqlDbContext context = new Db.EFMySqlDbContext()) { return(context.getDbSet <T>().ToList()); } } catch (Exception ex) { MessageBox.Show("无法从数据库获取数据,原因是:" + ex.Message); return(new List <T>()); } }
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> /// <returns></returns> public static List <queryDateResult> selectEveryMonthTaskNum() { string sql = @"SELECT count(1) as number, dateNum FROM ( SELECT taskId,DATE_FORMAT(taskStateDateTime,'%Y.%m') dateNum from tb_tasklifecycle WHERE taskState in(5004,5005) and TIMESTAMPDIFF(MONTH,NOW(),taskStateDateTime)<=6 group by taskId ) temp GROUP BY dateNum ORDER BY dateNum "; using (EFMySqlDbContext context = new Db.EFMySqlDbContext()) { return(context.Database.SqlQuery <queryDateResult>(sql).ToList()); } }
public static void edit <T>(T entity) where T : BaseEntity { using (EFMySqlDbContext context = new Db.EFMySqlDbContext()) { try { var foundIndicator = context.getDbSet <T>().FirstOrDefault(i => i.id == entity.id); PropertyInfo[] properties = typeof(T).GetProperties(); foreach (var property in properties) { string text = property.Name; property.SetValue(foundIndicator, property.GetValue(entity)); } context.SaveChanges(); } catch (Exception ex) { throw new Exception("修改失败:" + ex.Message); } } }
/// <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; } } } }