public override DatabaseModel Create(string connectionString, DatabaseModelFactoryOptions options)
        {
            Check.NotEmpty(connectionString, nameof(connectionString));
            Check.NotNull(options, nameof(options));

            Settings = new MySqlScaffoldingConnectionSettings(connectionString);

            using var connection = new MySqlConnection(Settings.GetProviderCompatibleConnectionString());
            return(Create(connection, options));
        }
        public MySqlDatabaseModelFactory(
            [NotNull] IDiagnosticsLogger <DbLoggerCategory.Scaffolding> logger,
            IMySqlOptions options)
        {
            Check.NotNull(logger, nameof(logger));

            _logger  = logger;
            _options = options;
            Settings = new MySqlScaffoldingConnectionSettings(string.Empty);
        }
        /// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        public override MethodCallCodeFragment GenerateUseProvider(
            string connectionString,
            MethodCallCodeFragment providerOptions)
        {
            // Strip scaffolding specific connection string options first.
            connectionString = new MySqlScaffoldingConnectionSettings(connectionString).GetProviderCompatibleConnectionString();

            return(new MethodCallCodeFragment(
                       nameof(MySqlDbContextOptionsExtensions.UseMySql),
                       providerOptions == null
                    ? new object[] { connectionString }
                    : new object[] { connectionString, new NestedClosureCodeFragment("x", providerOptions) }));
        }
        public MySqlDatabaseModelFactory(
            [NotNull] IDiagnosticsLogger <DbLoggerCategory.Scaffolding> logger,
            [NotNull] IRelationalTypeMappingSource typeMappingSource,
            [NotNull] IMySqlOptions options)
        {
            Check.NotNull(logger, nameof(logger));
            Check.NotNull(typeMappingSource, nameof(typeMappingSource));
            Check.NotNull(options, nameof(options));

            _logger            = logger;
            _typeMappingSource = typeMappingSource;
            _options           = options;
            Settings           = new MySqlScaffoldingConnectionSettings(string.Empty);
        }