//public EntityRepositoryFactory(ProviderMetadata providerMetadata, 
        //    ProviderRevisionSessionFactory<TypedEntity> revisionRepositoryFactory, 
        //    ProviderSchemaSessionFactory schemaRepositoryFactory,
        //    IFrameworkContext frameworkContext, global::NHibernate.Cfg.Configuration nhConfig)
        //    : base(providerMetadata, revisionRepositoryFactory, schemaRepositoryFactory, frameworkContext)
        //{
        //    Helper = new NhFactoryHelper(nhConfig, null, false, false, frameworkContext);
        //}

        public EntityRepositoryFactory(ProviderMetadata providerMetadata,
            AbstractRevisionRepositoryFactory<TypedEntity> revisionRepositoryFactory,
            AbstractSchemaRepositoryFactory schemaRepositoryFactory,
            IFrameworkContext frameworkContext, ProviderDependencyHelper dependencyHelper)
            : base(providerMetadata, revisionRepositoryFactory, schemaRepositoryFactory, frameworkContext, dependencyHelper)
        {
        }
 protected AbstractSchemaRepositoryFactory(
     ProviderMetadata providerMetadata,
     AbstractRevisionRepositoryFactory <EntitySchema> revisionRepositoryFactory,
     IFrameworkContext frameworkContext,
     ProviderDependencyHelper dependencyHelper)
     : base(providerMetadata, revisionRepositoryFactory, frameworkContext, dependencyHelper)
 {
     RevisionRepositoryFactory = revisionRepositoryFactory;
 }
 protected AbstractReadonlyEntityRepositoryFactory(ProviderMetadata providerMetadata,
                                                   AbstractReadonlySchemaRepositoryFactory schemaRepositoryFactory,
                                                   AbstractReadonlyRevisionRepositoryFactory <TypedEntity> revisionRepositoryFactory,
                                                   IFrameworkContext frameworkContext,
                                                   ProviderDependencyHelper dependencyHelper)
     : base(providerMetadata, frameworkContext, dependencyHelper)
 {
     SchemaRepositoryFactory   = schemaRepositoryFactory;
     RevisionRepositoryFactory = revisionRepositoryFactory;
 }
 protected AbstractReadonlyRepositoryFactory(ProviderMetadata providerMetadata, IFrameworkContext frameworkContext, ProviderDependencyHelper dependencyHelper)
 {
     ProviderMetadata = providerMetadata;
     FrameworkContext = frameworkContext;
     DependencyHelper = dependencyHelper;
 }
 protected AbstractRevisionRepositoryFactory(ProviderMetadata providerMetadata, IFrameworkContext frameworkContext, ProviderDependencyHelper dependencyHelper)
     : base(providerMetadata, frameworkContext, dependencyHelper)
 {
 }
        private ReadonlyProviderSetup GetReaderProvider(ProviderMetadata providerMetadata,
                                                        RevisionRepositoryFactory revisionRepositoryFactory,
                                                        SchemaRepositoryFactory schemaRepositoryFactory,
                                                        IFrameworkContext frameworkContext,
                                                        ProviderDependencyHelper dependencyHelper, Configuration config)
        {
            AbstractReadonlyEntityRepositoryFactory readonlyEntityRepositoryFactory =
                new EntityRepositoryFactory(providerMetadata, revisionRepositoryFactory, schemaRepositoryFactory,
                                            frameworkContext, dependencyHelper);

            var readonlyUnitFactory = new ReadonlyProviderUnitFactory(readonlyEntityRepositoryFactory);
            AbstractProviderBootstrapper bootstrapper = new ProviderBootstrapper(config, null);
            var singleReader = new ReadonlyProviderSetup(readonlyUnitFactory, providerMetadata, frameworkContext,
                                                         bootstrapper, 0);
            return singleReader;
        }