/// <summary> /// 自定义更新 /// </summary> /// <param name="item">实体对象(仅更新的字段、Where字段)</param> /// <param name="strSet">set语句(不含set关键字,可以用sql参数,Eg:cloumn_name=@CloumnName)</param> /// <param name="strWhere">where语句(不含where关键字,可以用sql参数,Eg:id=@Id)</param> /// <param name="tran">事务</param> /// <returns></returns> public virtual int Update(TbIpBlackListRaw item, string strSet, string strWhere, IDbTransaction tran = null) { const string format = "UPDATE {0} SET {1} {2};"; if (string.IsNullOrWhiteSpace(strSet)) { return(0); } var whereClause = string.Empty; if (!string.IsNullOrWhiteSpace(strWhere)) { whereClause = strWhere.Trim(); if (!whereClause.StartsWith("where", StringComparison.OrdinalIgnoreCase)) { whereClause = "WHERE " + whereClause; } } var sql = string.Format(format, TbIpBlackListRaw.__.DataBaseTableName, strSet, whereClause); return(DbConn.Execute(sql, param: item, transaction: tran)); }
/// <summary> /// 更新(根据原始主键OriginalXXX更新包含的字段列表) /// </summary> /// <param name="item">仅更新的字段、OriginalXXX字段</param> /// <param name="nameList">包含的name列表</param> /// <param name="tran">事务</param> /// <returns></returns> public virtual int Update(TbIpBlackListRaw item, IList <string> nameList, IDbTransaction tran = null) { if (nameList == null) { return(Update(item, tran)); } var curFieldList = TbIpBlackListRaw._.AllFields.Where(f => nameList.Contains(f.Name) && !f.IsReadonly); if (!curFieldList.Any()) { return(0); } const string format = "UPDATE {0} SET {1} WHERE {2};"; var setClause = curFieldList.Aggregate(string.Empty, (raw, p) => $"{raw},{p.ColumnName}=@{p.Name}", last => last.Trim(',')); var originalKeys = TbIpBlackListRaw._.AllFields.Where(p => p.IsPrimaryKey && p.IsReadonly); var whereClause = originalKeys.Aggregate(string.Empty, (raw, p) => $"{raw} and {p.ColumnName}=@{p.Name}", last => last.Trim().Substring(4)); var sql = string.Format(format, TbIpBlackListRaw.__.DataBaseTableName, setClause, whereClause); return(DbConn.Execute(sql, param: item, transaction: tran)); }
/// <summary> /// 更新(根据原始主键OriginalXXX更新其它字段信息) /// </summary> /// <param name="item">实体对象</param> /// <param name="tran">事务</param> /// <returns></returns> public virtual int Update(TbIpBlackListRaw item, IDbTransaction tran = null) { const string format = "UPDATE {0} SET ip=@Ip,add_time=@AddTime,end_time=@EndTime,is_enable=@IsEnable,descr=@Descr WHERE id=@OriginalId"; var sql = string.Format(format, TbIpBlackListRaw.__.DataBaseTableName); return(DbConn.Execute(sql, param: item, transaction: tran)); }
/// <summary> /// 添加 /// </summary> /// <param name="item"></param> /// <param name="tran"></param> /// <returns></returns> public virtual int Add(TbIpBlackListRaw item, IDbTransaction tran = null) { const string format = @"INSERT INTO {0}(ip,add_time,end_time,is_enable,descr) VALUES(@Ip,@AddTime,@EndTime,@IsEnable,@Descr);SELECT LAST_INSERT_ID();"; var sql = string.Format(format, TbIpBlackListRaw.__.DataBaseTableName); item.Id = DbConn.ExecuteScalar <Int64>(sql, param: item, transaction: tran); item.OriginalId = item.Id; return(1); }