/// <summary>
        /// Creates a new EntityStoreGenerator
        /// </summary>
        /// <param name="providerInvariantName">The name of the provider to use to load the schema information.</param>
        /// <param name="connectionString">A connection string to the DB that should be loaded from.</param>
        /// <param name="namespaceName">The namespace name to use for the store metadata that is generated.</param>
        public EntityStoreSchemaGenerator(string providerInvariantName, string connectionString, string namespaceName)
        {
            EDesignUtil.CheckStringArgument(providerInvariantName, "providerInvariantName");
            EDesignUtil.CheckArgumentNull(connectionString, "connectionString"); // check for NULL string and support empty connection string
            EDesignUtil.CheckStringArgument(namespaceName, "namespaceName");

            _namespaceName = namespaceName;

            _provider = providerInvariantName;
            _loader = new EntityStoreSchemaGeneratorDatabaseSchemaLoader(providerInvariantName, connectionString);
        }
        protected void InitializeReader(EntityConnection connection, IEnumerable <EntityStoreSchemaFilterEntry> filters)
        {
            _connection = connection;

            _command = EntityStoreSchemaGeneratorDatabaseSchemaLoader.CreateFilteredCommand(
                _connection,
                FunctionDetailSql,
                FunctionOrderByClause,
                EntityStoreSchemaFilterObjectTypes.Function,
                new List <EntityStoreSchemaFilterEntry>(filters),
                new string[] { FunctionDetailAlias });
            _reader = _command.ExecuteReader(CommandBehavior.SequentialAccess);
        }