/// <summary>
        /// Deletes a list of the specified entity type by providing where conditions.
        /// </summary>
        /// <typeparam name="T">The entity type.</typeparam>
        /// <param name="connection">The connection.</param>
        /// <param name="whereConditions">The where conditions.</param>
        /// <returns><see cref="Task"/> representing the deletion operation.</returns>
        public static async Task DeleteList <T>(this IDbConnection connection, object whereConditions)
        {
            TypeMap type = TypeMap.GetTypeMap <T>();

            // validate the key properties
            type.ValidateWhereProperties(whereConditions);

            // delete
            await connection.QueryAsync <T>(
                SqlBuilder.BuildDeleteWhere(type, whereConditions),
                whereConditions).ConfigureAwait(false);
        }