public static void OptimizeAsync_GivenInvalidOptimizeFeaturesValue_ThrowsArgumentException()
        {
            var connection = CreateConnectionFactory();
            var connPragma = CreateConnectionPragma(connection);

            const OptimizeFeatures newValue = (OptimizeFeatures)55;

            Assert.That(() => connPragma.OptimizeAsync(newValue), Throws.ArgumentException);
        }
示例#2
0
        /// <summary>
        /// Creates a query that sets the legacy alter table pragma.
        /// </summary>
        /// <param name="features">The optimisation options to run.</param>
        /// <returns>A SQL query.</returns>
        /// <exception cref="ArgumentException"><paramref name="features"/> is an invalid enum.</exception>
        protected virtual string OptimizeSetQuery(OptimizeFeatures features)
        {
            if (!features.IsValid())
            {
                throw new ArgumentException($"The { nameof(OptimizeFeatures) } provided must be a valid enum.", nameof(features));
            }

            var value = (int)features;

            return(PragmaPrefix + "optimize = " + value);
        }
示例#3
0
 /// <summary>
 /// Attempt to optimize the database.
 /// </summary>
 /// <param name="features">The optimisation options to run.</param>
 /// <param name="cancellationToken">The cancellation token.</param>
 public Task <IEnumerable <string> > OptimizeAsync(OptimizeFeatures features = OptimizeFeatures.Analyze, CancellationToken cancellationToken = default) => DbConnection.QueryAsync <string>(OptimizeSetQuery(features), cancellationToken);