/// <summary> /// 更新记录 /// </summary> /// <param name="param">ParamUpdate</param> /// <returns>int</returns> public int Update(ParamUpdate param) { var result = 0; db.UseTransaction(true); var rtnBefore = this.OnBeforeUpdate(new UpdateEventArgs() { db = db, data = param.GetData() }); if (!rtnBefore) { return(result); } string sql = BuilderParse(param).Data.Command.Data.Context.Data.FluentDataProvider.GetSqlForUpdateBuilder(BuilderParse(param).Data); LogHelper.WriteDb("(ParamUpdate)执行更新记录sql语句:" + sql); result = BuilderParse(param).Execute(); this.CommandResult.Set(true, APP.Msg_Update_Success); this.OnAfterUpdate(new UpdateEventArgs() { db = db, data = param.GetData(), executeValue = result }); db.Commit(); return(result); }
protected IUpdateBuilder BuilderParse(ParamUpdate param) { var data = param.GetData(); var updateBuilder = db.Update(data.Update.Length == 0 ? typeof(T).Name : data.Update); //除开编辑人和编辑日期字段外,其他data中的所有字段都加入参数内 var dict = GetCommonFieldValueForEdit(); foreach (var column in data.Columns.Where(column => !dict.ContainsKey(column.Key))) { updateBuilder.Column(column.Key, column.Value); } //如果实体中有编辑人和编辑日期字段,则加入参数内 var properties = JTS.Utils.ReflectionUtil.GetProperties(typeof(T)); foreach (var item in dict.Where(item => properties.ContainsKey(item.Key.ToLower()))) { updateBuilder.Column(item.Key, item.Value); } data.Where.ForEach(item => updateBuilder.Where(item.Data.Column, item.Data.Value)); //foreach (var item in data.Where) //{ // updateBuilder.Where(item.Data.Column, item.Data.Value); //} return(updateBuilder); }