/// <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)); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }