Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }