예제 #1
0
        /// <summary>
        /// 删除数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="db"></param>
        /// <param name="whereConditions"></param>
        /// <param name="transaction"></param>
        /// <param name="commandTimeout"></param>
        public static int DeleteListByBulk <T>(this IDbConnection db, object whereConditions, IDbTransaction transaction = null, int?commandTimeout = null) where T : new()
        {
            var obj = QueryableBuilder.GetListByBulk <T>(whereConditions);
            var sql = $"DELETE FROM {obj.TableName}{obj.Where};";

            return(db.Execute(sql, whereConditions, transaction, commandTimeout, CommandType.Text));
        }
예제 #2
0
 /// <summary>
 /// 倒序
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <typeparam name="TResult"></typeparam>
 /// <param name="obj"></param>
 /// <param name="predicate"></param>
 /// <returns></returns>
 public static IQuery <T> ThenByDescending <T, TResult>(this IQuery <T> obj, Expression <Func <T, TResult> > predicate)
 {
     if (string.IsNullOrWhiteSpace(obj.OrderBy))
     {
         throw new Exception("请先调用OrderBy");
     }
     obj.OrderBy = $"{obj.OrderBy},{QueryableBuilder.GetPropertyName(predicate)} DESC";
     return(obj);
 }
예제 #3
0
        /// <summary>
        /// 获取数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="db"></param>
        /// <param name="whereConditions"></param>
        /// <param name="transaction"></param>
        /// <param name="commandTimeout"></param>
        /// <returns></returns>
        public static IQuery <T> GetListByBulk <T>(this SqlConnection db, object whereConditions, SqlTransaction transaction = null, int?commandTimeout = null)
        {
            var obj = QueryableBuilder.GetListByBulk <T>(whereConditions);

            obj.Db              = db;
            obj.Transaction     = transaction;
            obj.CommandTimeout  = commandTimeout;
            obj.WhereConditions = whereConditions;
            return(obj);
        }
예제 #4
0
        /// <summary>
        /// 基于like关键词查询数据 (获取首条FirstOrDefault,排序OrderBy)
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="db"></param>
        /// <param name="likeColumns">like查询的列。eg:p=>new { p.Name, p.Text }</param>
        /// <param name="keywords">关键词集合</param>
        /// <param name="transaction"></param>
        /// <param name="commandTimeout"></param>
        /// <returns></returns>
        public static IQuery <T> GetListByBulkLike <T>(this IDbConnection db, Func <T, object> likeColumns, List <string> keywords, IDbTransaction transaction = null, int?commandTimeout = null) where T : new()
        {
            var obj = QueryableBuilder.GetListByBulkLike(likeColumns, keywords, out var whereConditions);

            obj.Db              = db;
            obj.Transaction     = transaction;
            obj.CommandTimeout  = commandTimeout;
            obj.WhereConditions = whereConditions;
            return(obj);
        }
예제 #5
0
        /// <summary>
        /// 基于字段匹配集合查询数据(获取首条FirstOrDefault,排序OrderBy)
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="db"></param>
        /// <param name="whereConditions"></param>
        /// <param name="selectColumns"></param>
        /// <param name="transaction"></param>
        /// <param name="commandTimeout"></param>
        /// <returns></returns>
        public static IQuery <T> GetListByBulk <T>(this IDbConnection db, object whereConditions, Expression <Func <T, object> > selectColumns, IDbTransaction transaction = null, int?commandTimeout = null) where T : new()
        {
            var obj = QueryableBuilder.GetListByBulk(whereConditions, selectColumns);

            obj.Db              = db;
            obj.Transaction     = transaction;
            obj.CommandTimeout  = commandTimeout;
            obj.WhereConditions = whereConditions;
            return(obj);
        }
예제 #6
0
 /// <summary>
 /// 倒序
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <typeparam name="TResult"></typeparam>
 /// <param name="obj"></param>
 /// <param name="predicate"></param>
 /// <returns></returns>
 public static IQuery <T> OrderByDescending <T, TResult>(this IQuery <T> obj, Expression <Func <T, TResult> > predicate)
 {
     obj.OrderBy = $"ORDER BY {QueryableBuilder.GetPropertyName(predicate)} DESC";
     return(obj);
 }
예제 #7
0
 /// <summary>
 /// 顺序
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <typeparam name="TResult"></typeparam>
 /// <param name="obj"></param>
 /// <param name="predicate"></param>
 /// <returns></returns>
 public static IOrderQuery <T> ThenBy <T, TResult>(this IOrderQuery <T> obj, Expression <Func <T, TResult> > predicate)
 {
     obj.OrderBy = $"{obj.OrderBy},{QueryableBuilder.GetPropertyName(predicate)} ASC";
     return(obj);
 }