/// <summary> /// 批量添加 /// </summary> /// <typeparam name="TEntity"> 要注册的类型 </typeparam> /// <param name="entities"> 要注册的对象集合 </param> public virtual OperationResult AddNew <TEntity>(IEnumerable <TEntity> entities) where TEntity : EntityBase { string exMsg = string.Empty; try { using (iCMSDbContext ctx = new iCMSDbContext()) { EntityState state; //不跟踪变化,提高效率 ctx.Configuration.AutoDetectChangesEnabled = false; foreach (TEntity entity in entities) { state = ctx.Entry(entity).State; if (state == EntityState.Detached) { ctx.Entry(entity).State = EntityState.Added; } } ctx.SaveChanges(); return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); } } catch (Exception ex) { LogHelper.WriteLog("数据库操作错误:" + ex.Message); exMsg = ex.Message; } return(new OperationResult(EnumOperationResultType.Error, exMsg)); }
/// <summary> /// add by masu 2016年3月17日09:10:11 批量更新 /// </summary> /// <typeparam name="TEntity"> 要注册的类型 </typeparam> /// <param name="entity"> 要注册的对象 </param> public virtual OperationResult Update <TEntity>(IEnumerable <TEntity> entities) where TEntity : EntityBase { string exMsg = string.Empty; try { using (iCMSDbContext ctx = new iCMSDbContext()) { // EntityState state; //不跟踪变化,提高效率 ctx.Configuration.AutoDetectChangesEnabled = false; foreach (TEntity entity in entities) { if (ctx.Entry(entity).State == EntityState.Detached) { ctx.Entry(entity).State = EntityState.Modified; } } ctx.SaveChanges(); ////批量 //foreach (TEntity entity in entities) //{ // if (ctx.Entry(entity).State == EntityState.Detached) // { // try // { // #region 云推送添加 // BaseCloudService cloud = BaseCloudService.GetInstance(); // cloud.SyncInfo(entity, EnumCloudDataOperation.Update); // #endregion // } // catch (Exception ex) // { // LogHelper.WriteLog(ex); // } // finally // { // } // //Thread thread = new Thread(YunyiThreadHelper.YunyiUpdate); // //thread.Start(entity); // } //} return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); } } catch (Exception ex) { LogHelper.WriteLog("数据库操作错误:" + ex.Message); exMsg = ex.Message; } return(new OperationResult(EnumOperationResultType.Error, exMsg)); }
/// <summary> /// 更新 /// </summary> /// <typeparam name="TEntity"> 要注册的类型 </typeparam> /// <param name="entity"> 要注册的对象 </param> public virtual OperationResult Update <TEntity>(TEntity entity) where TEntity : EntityBase { string exMsg = string.Empty; try { using (iCMSDbContext ctx = new iCMSDbContext()) { if (ctx.Entry(entity).State == EntityState.Detached) { ctx.Set <TEntity>().Attach(entity); } ctx.Entry(entity).State = EntityState.Modified; ctx.SaveChanges(); //try //{ // #region 云推送添加 // BaseCloudService cloud = BaseCloudService.GetInstance(); // cloud.SyncInfo(entity, EnumCloudDataOperation.Update); // #endregion //} //catch (Exception ex) //{ // LogHelper.WriteLog(ex); //} //finally //{ //} #region 云平台修改 Multi Thread //Thread thread = new Thread(YunyiThreadHelper.YunyiUpdate); //thread.Start(entity); #endregion return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); } } catch (Exception ex) { exMsg = ex.Message; LogHelper.WriteLog("数据库操作错误:" + ex.Message); } return(new OperationResult(EnumOperationResultType.Error, exMsg)); }
/// <summary> /// 删除指定编号的记录 /// </summary> /// <param name="id"> 实体记录编号 </param> /// <returns> 操作影响的行数 </returns> public virtual OperationResult Delete <TEntity>(int id) where TEntity : EntityBase { try { using (iCMSDbContext ctx = new iCMSDbContext()) { TEntity entity = Set <TEntity>(ctx).Find(id); ctx.Entry(entity).State = EntityState.Deleted; ctx.SaveChanges(); // return Delete<TEntity>(entities); return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); } } catch (Exception ex) { LogHelper.WriteLog("数据库操作错误:" + ex.Message); return(new OperationResult(EnumOperationResultType.Error, ex.Message)); } }
/// <summary> /// 删除所有符合特定表达式的数据 /// </summary> /// <param name="predicate"> 查询条件谓语表达式 </param> /// <returns> 操作影响的行数 </returns> public virtual OperationResult Delete(Expression <Func <TEntity, bool> > predicate) { try { using (iCMSDbContext ctx = new iCMSDbContext()) { List <TEntity> entities = Set <TEntity>(ctx).Where(predicate).ToList(); foreach (TEntity entity in entities) { ctx.Entry(entity).State = EntityState.Deleted; } ctx.SaveChanges(); // return Delete<TEntity>(entities); return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); } } catch (Exception ex) { LogHelper.WriteLog("数据库操作错误:" + ex.Message); return(new OperationResult(EnumOperationResultType.Error, ex.Message)); } }
/// <summary> /// 事务操作 /// </summary> /// <param name="models"></param> /// <returns></returns> public OperationResult TranMethod(Dictionary <EntityBase, EntityState> models) { string exMsg = string.Empty; try { using (iCMSDbContext ctx = new iCMSDbContext()) { foreach (var model in models) { ctx.Entry(model.Key).State = model.Value; } ctx.SaveChanges(); //#region 云平台推送 //try //{ // Thread thread = null; // BaseCloudService cloud = BaseCloudService.GetInstance(); // foreach (var model in models) // { // switch (model.Value) // { // case EntityState.Added: // #region 云推送添加 // cloud.SyncInfo(model.Key, EnumCloudDataOperation.Add); // #endregion // break; // case EntityState.Deleted: // #region 云推送删除 // cloud.SyncInfo(model.Key, EnumCloudDataOperation.Delete); // #endregion // break; // case EntityState.Modified: // #region 云推送删除 // cloud.SyncInfo(model.Key, EnumCloudDataOperation.Update); // #endregion // break; // } // } //} //catch (Exception ex) //{ // LogHelper.WriteLog(ex); //} //finally //{ //} //#endregion return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); } } catch (Exception ex) { LogHelper.WriteLog("数据库操作错误:" + ex.Message); exMsg = ex.Message; } finally { // Context.Configuration.AutoDetectChangesEnabled = true; } return(new OperationResult(EnumOperationResultType.Error, exMsg)); }