/// <summary> /// 根据日期删除对应的数据,修改只反应在dbcontext中,还没有提交到数据库中 /// </summary> /// <param name="date"></param> internal void DeleteValuesByDate(DateTimeOffset date) { var delMesValues = this.MesValues.FindAll(s => s.Date == date); var delCalcValues = this.CalcValues.FindAll(s => s.Date == date); foreach (var item in delMesValues) { MesValues.Remove(item); this.DbContext.DeleteObject(item); } foreach (var item in delCalcValues) { CalcValues.Remove(item); this.DbContext.DeleteObject(item); } }
/// <summary> /// 根据AppIntegratedInfo的信息生成组合表,包括测量数据、计算数据、备注 /// </summary> /// <param name="num">需要显示数据的个数</param> /// <returns></returns> public DataTable ConstructTable() { DataTable dt = null; if (CalcParams.Count > 0) { List <DateTimeOffset> timeList = null; //必须具有计算参数 if (MesParams.Count > 0) { timeList = (from i in MesValues select i.Date).Distinct().ToList(); } else { //没有测量参数的情况 timeList = (from i in CalcValues select i.Date).Distinct().ToList(); } int temp = int.MaxValue; if (_topNum > 0) { temp = _topNum; } dt = createDataTableSchema(); for (int index = 0; index < timeList.Count && index < temp; index++) { DataRow row = dt.NewRow(); DateTimeOffset date = timeList[index]; row[PubConstant.timeColumnName] = date; foreach (MessureValue mv in MesValues.Where(s => s.Date == date)) { string aParamName = MesParams.First(s => s.Id == mv.ParamId).ParamName; //mv.messureParam.ParamName; if (mv.Val != null) { row[aParamName] = mv.Val; } } foreach (CalculateValue cv in CalcValues.Where(s => s.Date == date)) { string aParamName = CalcParams.First(s => s.Id == cv.ParamId).ParamName; //cv.calculateParam.ParamName; if (cv.Val != null) { row[aParamName] = cv.Val; } } Remark remark = Remarks.FirstOrDefault(s => s.Date == date); if (remark != null) { row[PubConstant.remarkColumnName] = remark.RemarkText; } dt.Rows.Add(row); } dt.AcceptChanges(); } return(dt); }