/// <summary> /// 删除数据 /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="connection"></param> /// <param name="tableName"></param> /// <param name="whereExpress"></param> /// <param name="transaction">事务</param> /// <param name="outSqlAction">返回sql语句</param> /// <returns>-1 参数为空</returns> public static async Task <int> DeleteAsync <TEntity>(this IDbConnection connection, string tableName, Expression <Func <TEntity, bool> > whereExpress, IDbTransaction transaction = null, Action <string> outSqlAction = null) where TEntity : IDomainObject { if (string.IsNullOrEmpty(tableName)) { throw new ArgumentNullException(nameof(tableName)); } if (whereExpress == null) { throw new ArgumentNullException(nameof(whereExpress)); } var dbType = connection.GetDbType(); var sqlExpression = SqlExpression.Delete <TEntity>(dbType, tableName).Where(whereExpress); // 返回sql outSqlAction?.Invoke(sqlExpression.Script); var task = await connection.ExecuteAsync(sqlExpression.Script, sqlExpression.DbParams, transaction); return(task); }
/// <summary> /// 删除数据 /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="connection"></param> /// <param name="tableName"></param> /// <param name="whereExpress"></param> /// <param name="outSqlAction">返回sql语句</param> /// <returns>-1 参数为空</returns> public static int Delete <TEntity>(this IDbConnection connection, string tableName, Expression <Func <TEntity, bool> > whereExpress, Action <string> outSqlAction = null) where TEntity : class, new() { if (string.IsNullOrEmpty(tableName)) { throw new ArgumentNullException(nameof(tableName)); } if (whereExpress == null) { throw new ArgumentNullException(nameof(whereExpress)); } var dbType = connection.GetDbType(); var sqlExpression = SqlExpression.Delete <TEntity>(dbType, tableName).Where(whereExpress); outSqlAction?.Invoke(sqlExpression.Script); var result = connection.Execute(sqlExpression.Script, sqlExpression.DbParams); return(result); }