示例#1
0
文件: Delete.cs 项目: bank2u/RepoDb
        /// <summary>
        /// Deletes an existing data from the database in asynchronous way.
        /// </summary>
        /// <param name="connection">The connection object to be used.</param>
        /// <param name="tableName">The name of the target table to be used.</param>
        /// <param name="where">The query expression to be used.</param>
        /// <param name="commandTimeout">The command timeout in seconds to be used.</param>
        /// <param name="transaction">The transaction to be used.</param>
        /// <param name="trace">The trace object to be used.</param>
        /// <param name="statementBuilder">The statement builder object to be used.</param>
        /// <returns>The number of rows affected by the execution.</returns>
        internal static Task <int> DeleteAsyncInternal(this IDbConnection connection,
                                                       string tableName,
                                                       QueryGroup where,
                                                       int?commandTimeout         = null,
                                                       IDbTransaction transaction = null,
                                                       ITrace trace = null,
                                                       IStatementBuilder statementBuilder = null)
        {
            // Variables
            var request = new DeleteRequest(tableName,
                                            connection,
                                            transaction,
                                            where,
                                            statementBuilder);
            var param = (object)null;

            // Converts to propery mapped object
            if (where != null)
            {
                param = QueryGroup.AsMappedObject(new[] { where.MapTo(null) });
            }

            // Return the result
            return(DeleteAsyncInternalBase(connection: connection,
                                           request: request,
                                           param: param,
                                           commandTimeout: commandTimeout,
                                           transaction: transaction,
                                           trace: trace));
        }
示例#2
0
文件: Delete.cs 项目: bank2u/RepoDb
        /// <summary>
        /// Deletes an existing data from the database.
        /// </summary>
        /// <typeparam name="TEntity">The type of the data entity object.</typeparam>
        /// <param name="connection">The connection object to be used.</param>
        /// <param name="where">The query expression to be used.</param>
        /// <param name="commandTimeout">The command timeout in seconds to be used.</param>
        /// <param name="transaction">The transaction to be used.</param>
        /// <param name="trace">The trace object to be used.</param>
        /// <param name="statementBuilder">The statement builder object to be used.</param>
        /// <returns>The number of rows affected by the execution.</returns>
        internal static int DeleteInternal <TEntity>(this IDbConnection connection,
                                                     QueryGroup where,
                                                     int?commandTimeout         = null,
                                                     IDbTransaction transaction = null,
                                                     ITrace trace = null,
                                                     IStatementBuilder statementBuilder = null)
            where TEntity : class
        {
            // Variables
            var request = new DeleteRequest(typeof(TEntity),
                                            connection,
                                            transaction,
                                            where,
                                            statementBuilder);
            var param = (object)null;

            // Converts to propery mapped object
            if (where != null)
            {
                param = QueryGroup.AsMappedObject(new[] { where.MapTo <TEntity>() });
            }

            // Return the result
            return(DeleteInternalBase(connection: connection,
                                      request: request,
                                      param: param,
                                      commandTimeout: commandTimeout,
                                      transaction: transaction,
                                      trace: trace));
        }