/// <summary> /// 根据条件批量删除数据 /// </summary> /// <param name="cmd">删除命令实例</param> /// <param name="predicate">WHERE匹配谓词实例</param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static bool DeleteWhere <T> (this DeleteCommand cmd, SqlPredicate <T> predicate) where T : class, new () { var(sbSql, parameters) = cmd.GetSql(predicate); var deleted = cmd.Connection.Execute(sbSql, parameters, cmd.Transaction, commandTimeout: cmd.TimeoutSeconds); return(deleted > 0); }
/// <summary> /// 根据条件批量更新数据 /// </summary> /// <param name="cmd">更新命令实例</param> /// <param name="predicate">WHERE匹配谓词实例</param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static bool UpdateWhere <T> (this UpdateCommand cmd, SqlPredicate <T> predicate) where T : class, new () { var(sbSql, parameters) = cmd.GetSql( predicate, getSetSql: (adapter, dyncParms) => GetSetSql <T> ( adapter, dyncParms, predicate.Condition, cmd.UpdateFields)); var updated = cmd.Connection.Execute(sbSql, parameters, cmd.Transaction, commandTimeout: cmd.TimeoutSeconds); return(updated > 0); }
/// <summary> /// 查询 /// </summary> /// <param name="cmd">选择命令实例</param> /// <param name="predicate">WHERE匹配谓词实例</param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static (long Count, IEnumerable <T> Items) GetWhere <T> (this SelectCommand cmd, SqlPredicate <T> predicate)
/// <summary> /// 查询 /// </summary> /// <param name="conn">连接实例</param> /// <param name="predicate">WHERE匹配谓词实例</param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static (long Count, IEnumerable <T> Items) GetWhere <T> (this IDbConnection conn, SqlPredicate <T> predicate)
/// <summary> /// 获取SQL语句 /// </summary> /// <param name="cmd"></param> /// <param name="predicate"></param> /// <param name="getSetSql"></param> /// <param name="getExtWhereSql"></param> /// <returns></returns> private static (string, DynamicParameters) GetSql <T> (this Command cmd, SqlPredicate <T> predicate, Func <ISqlAdapter /*adapter*/, DynamicParameters /*dyncParms*/, string> getSetSql = null, Action <ISqlAdapter /*adapter*/, StringBuilder /*sbSql*/> getExtWhereSql = null)