/// <summary> /// 设置插入数据的命令 /// </summary> /// <param name="entity">实体对象</param> /// <param name="cmd">命令</param> /// <returns>返回真说明要取主键</returns> private void CreateFullSqlParameter(PageDataData entity, MySqlCommand cmd) { //01:标识(ID) cmd.Parameters.Add(new MySqlParameter("ID", MySqlDbType.Int32) { Value = entity.ID }); //02:用户标识(UserId) cmd.Parameters.Add(new MySqlParameter("UserId", MySqlDbType.Int32) { Value = entity.UserId }); //03:页面标识(PageId) cmd.Parameters.Add(new MySqlParameter("PageId", MySqlDbType.Int32) { Value = entity.PageId }); //04:页面数据(PageData) var isNull = string.IsNullOrWhiteSpace(entity.PageData); var parameter = new MySqlParameter("PageData", MySqlDbType.VarChar, isNull ? 10 : (entity.PageData).Length); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.PageData; } cmd.Parameters.Add(parameter); }
/// <summary> /// 取得仅更新的SQL语句 /// </summary> internal string GetModifiedSqlCode(PageDataData data) { if (data.__EntityStatusNull || !data.__EntityStatus.IsModified) { return(";"); } StringBuilder sql = new StringBuilder(); sql.AppendLine("UPDATE [ST_PageData] SET"); //用户标识 if (data.__EntityStatus.ModifiedProperties[PageDataData.Real_UserId] > 0) { sql.AppendLine(" [UserId] = @UserId"); } //页面标识 if (data.__EntityStatus.ModifiedProperties[PageDataData.Real_PageId] > 0) { sql.AppendLine(" [PageId] = @PageId"); } //页面数据 if (data.__EntityStatus.ModifiedProperties[PageDataData.Real_PageData] > 0) { sql.AppendLine(" [PageData] = @PageData"); } sql.Append(" WHERE [ID] = @ID;"); return(sql.ToString()); }
/// <summary> /// 载入数据 /// </summary> /// <param name="reader">数据读取器</param> /// <param name="entity">读取数据的实体</param> protected sealed override void LoadEntity(MySqlDataReader reader, PageDataData entity) { using (new EditScope(entity.__EntityStatus, EditArrestMode.All, false)) { entity._id = (int)reader.GetInt32(0); entity._userid = (int)reader.GetInt32(1); entity._pageid = (int)reader.GetInt32(2); if (!reader.IsDBNull(3)) { entity._pagedata = reader.GetString(3); } } }
/// <summary> /// 设置插入数据的命令 /// </summary> /// <param name="entity">实体对象</param> /// <param name="cmd">命令</param> /// <returns>返回真说明要取主键</returns> protected sealed override bool SetInsertCommand(PageDataData entity, MySqlCommand cmd) { cmd.CommandText = InsertSqlCode; CreateFullSqlParameter(entity, cmd); return(true); }
/// <summary> /// 设置更新数据的命令 /// </summary> /// <param name="entity">实体对象</param> /// <param name="cmd">命令</param> protected sealed override void SetUpdateCommand(PageDataData entity, MySqlCommand cmd) { cmd.CommandText = UpdateSqlCode; CreateFullSqlParameter(entity, cmd); }