/// <summary> /// 添加, 这里可以人工干预,提高程序的性能 /// </summary> /// <param name="entity">实体</param> /// <param name="identity">自增量方式,表主键是否采用自增的策略</param> /// <param name="returnId">返回主键,不返回程序允许速度会快,主要是为了主细表批量插入数据优化用的</param> /// <returns>主键</returns> public string Add(BaseLanguageEntity entity, bool identity = true, bool returnId = true) { this.Identity = identity; this.ReturnId = returnId; entity.Id = int.Parse(this.AddObject(entity)); return(entity.Id.ToString()); }
public int SetLanguage(string languageCode, string messageCode, string caption) { int result = 0; // 更新的条件部分 List <KeyValuePair <string, object> > whereParameters = new List <KeyValuePair <string, object> >(); whereParameters.Add(new KeyValuePair <string, object>(BaseLanguageEntity.FieldLanguageCode, languageCode)); whereParameters.Add(new KeyValuePair <string, object>(BaseLanguageEntity.FieldMessageCode, messageCode)); whereParameters.Add(new KeyValuePair <string, object>(BaseLanguageEntity.FieldDeletionStateCode, 0)); // 更新的内容部分 List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseLanguageEntity.FieldCaption, caption)); result = this.SetProperty(whereParameters, parameters); // 若没能更新就进行新增操作 if (result == 0) { BaseLanguageEntity entity = new BaseLanguageEntity(); entity.LanguageCode = languageCode; entity.MessageCode = messageCode; entity.Caption = caption; entity.DeletionStateCode = 0; entity.ModifiedOn = DateTime.Now; entity.CreateOn = DateTime.Now; this.AddObject(entity); result++; } return(result); }
/// <summary> /// 设置实体 /// </summary> /// <param name="entity">实体</param> private void SetObject(SQLBuilder sqlBuilder, BaseLanguageEntity entity) { SetObjectExpand(sqlBuilder, entity); sqlBuilder.SetValue(BaseLanguageEntity.FieldLanguageCode, entity.LanguageCode); sqlBuilder.SetValue(BaseLanguageEntity.FieldMessageCode, entity.MessageCode); sqlBuilder.SetValue(BaseLanguageEntity.FieldCaption, entity.Caption); sqlBuilder.SetValue(BaseLanguageEntity.FieldDeletionStateCode, entity.DeletionStateCode); }
/// <summary> /// 获取实体 /// </summary> /// <param name="userInfo">用户</param> /// <param name="id">主键</param> /// <returns>实体</returns> public BaseLanguageEntity GetObject(BaseUserInfo userInfo, string id) { BaseLanguageEntity entity = null; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) => { var manager = new BaseLanguageManager(dbHelper, userInfo); entity = manager.GetObject(id); }); return(entity); }
/// <summary> /// 更新实体 /// </summary> /// <param name="entity">实体</param> public int UpdateObject(BaseLanguageEntity entity) { SQLBuilder sqlBuilder = new SQLBuilder(DbHelper); sqlBuilder.BeginUpdate(this.CurrentTableName); this.SetObject(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseLanguageEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BaseLanguageEntity.FieldModifiedBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseLanguageEntity.FieldModifiedOn); sqlBuilder.SetWhere(this.PrimaryKey, entity.Id); return(sqlBuilder.EndUpdate()); }
/// <summary> /// 更新实体 /// </summary> /// <param name="userInfo">用户</param> /// <param name="entity">实体</param> /// <param name="statusCode">返回状态码</param> /// <param name="statusMessage">返回状态信息</param> /// <returns>影响行数</returns> public int Update(BaseUserInfo userInfo, BaseLanguageEntity entity, out string statusCode, out string statusMessage) { int result = 0; string returnCode = string.Empty; string returnMessage = string.Empty; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDbWithTransaction(userInfo, parameter, (dbHelper) => { var manager = new BaseLanguageManager(dbHelper, userInfo); result = manager.Update(entity, out returnCode); returnMessage = manager.GetStateMessage(returnCode); }); statusCode = returnCode; statusMessage = returnMessage; return(result); }
/// <summary> /// 添加 /// </summary> /// <param name="entity">实体</param> /// <param name="statusCode">返回状态码</param> /// <returns>主键</returns> public string Add(BaseLanguageEntity entity, out string statusCode) { string result = string.Empty; // 检查名称是否重复 List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseLanguageEntity.FieldLanguageCode, entity.LanguageCode)); parameters.Add(new KeyValuePair <string, object>(BaseLanguageEntity.FieldMessageCode, entity.MessageCode)); parameters.Add(new KeyValuePair <string, object>(BaseLanguageEntity.FieldDeletionStateCode, 0)); if (this.Exists(parameters)) { // 名称是否重复 statusCode = Status.ErrorNameExist.ToString(); } else { result = this.AddObject(entity); // 运行成功 statusCode = Status.OKAdd.ToString(); } return(result); }
/// <summary> /// 更新 /// </summary> /// <param name="entity">实体</param> /// <param name="statusCode">返回状态码</param> /// <returns>影响行数</returns> public int Update(BaseLanguageEntity entity, out string statusCode) { int result = 0; // 检查是否已被其他人修改 if (DbLogic.IsModifed(DbHelper, this.CurrentTableName, entity.Id, entity.ModifiedUserId, entity.ModifiedOn)) { // 数据已经被修改 statusCode = Status.ErrorChanged.ToString(); } else { // 检查名称是否重复 List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseLanguageEntity.FieldLanguageCode, entity.LanguageCode)); parameters.Add(new KeyValuePair <string, object>(BaseLanguageEntity.FieldMessageCode, entity.MessageCode)); parameters.Add(new KeyValuePair <string, object>(BaseLanguageEntity.FieldDeletionStateCode, 0)); if (this.Exists(parameters, entity.Id)) { // 名称已重复 statusCode = Status.ErrorCodeExist.ToString(); } else { result = this.UpdateObject(entity); if (result == 1) { statusCode = Status.OKUpdate.ToString(); } else { statusCode = Status.ErrorDeleted.ToString(); } } } return(result); }
// 这个是声明扩展方法 partial void SetObjectExpand(SQLBuilder sqlBuilder, BaseLanguageEntity entity);
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseLanguageEntity entity) { string key = string.Empty; SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, this.PrimaryKey); if (!this.Identity) { // 这里已经是指定了主键了,所以不需要返回主键了 sqlBuilder.ReturnId = false; sqlBuilder.SetValue(this.PrimaryKey, entity.Id); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(this.PrimaryKey, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(this.PrimaryKey, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper); entity.Id = int.Parse(sequenceManager.Increment(this.CurrentTableName)); sqlBuilder.SetValue(this.PrimaryKey, entity.Id); } } } this.SetObject(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseLanguageEntity.FieldCreateUserId, UserInfo.Id); sqlBuilder.SetValue(BaseLanguageEntity.FieldCreateBy, UserInfo.RealName); } else { sqlBuilder.SetValue(BaseLanguageEntity.FieldCreateBy, entity.CreateBy); } sqlBuilder.SetDBNow(BaseLanguageEntity.FieldCreateOn); if (UserInfo != null) { sqlBuilder.SetValue(BaseLanguageEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BaseLanguageEntity.FieldModifiedBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseLanguageEntity.FieldModifiedOn); if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.SqlServer || DbHelper.CurrentDbType == CurrentDbType.Access)) { key = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { return(entity.Id.ToString()); } return(key); }
/// <summary> /// 更新 /// </summary> /// <param name="entity">实体</param> public int Update(BaseLanguageEntity entity) { return(this.UpdateObject(entity)); }