/// <summary> /// Initializes a new instance of the <see cref="UpdateDatabase" /> class. /// </summary> /// <remarks> /// <para>The arguments supported by <paramref name="args" /> are:</para> /// <para> /// <c>targetMigration</c>--The target <see cref="Migration" />. If <see cref="Migration.InitialDatabase" />, all migrations will be /// reverted. Defaults to the last migration. /// </para> /// <para> /// <c>connectionString</c>--The connection string to the database. Defaults to the one specified in /// <see cref="O:Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.AddDbContext" /> or /// <see cref="DbContext.OnConfiguring" />. /// </para> /// <para><c>contextType</c>--The <see cref="DbContext" /> to use.</para> /// </remarks> /// <param name="executor">The operation executor.</param> /// <param name="resultHandler">The <see cref="IOperationResultHandler" />.</param> /// <param name="args">The operation arguments.</param> public UpdateDatabase( OperationExecutor executor, IOperationResultHandler resultHandler, IDictionary args) : base(resultHandler) { Check.NotNull(executor, nameof(executor)); Check.NotNull(args, nameof(args)); var targetMigration = (string?)args["targetMigration"]; var connectionString = (string?)args["connectionString"]; var contextType = (string?)args["contextType"]; Execute(() => executor.UpdateDatabaseImpl(targetMigration, connectionString, contextType)); }