Пример #1
0
        /// <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));
        }
Пример #2
0
        /// <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));
        }
Пример #3
0
        /// <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));
        }
Пример #4
0
        /// <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);
        }