public override MethodCallCodeFragment GenerateProviderOptions()
        {
            var serverVersionCall = new MethodCallCodeFragment(
                nameof(MySqlDbContextOptionsBuilder.ServerVersion),
                _options.ServerVersion.ToString());

            var providerOptions = base.GenerateProviderOptions();

            return(providerOptions == null
                ? serverVersionCall
                : serverVersionCall.Chain(providerOptions));
        }
        /// <summary>
        ///     Generates a method chain to configure additional context options.
        /// </summary>
        /// <returns>The method chain. May be null.</returns>
        public virtual MethodCallCodeFragment?GenerateContextOptions()
        {
            MethodCallCodeFragment?contextOptions = null;

            foreach (var plugin in Dependencies.Plugins)
            {
                var chainedCall = plugin.GenerateContextOptions();
                if (chainedCall == null)
                {
                    continue;
                }

                contextOptions = contextOptions?.Chain(chainedCall) ?? chainedCall;
            }

            return(contextOptions);
        }