public NHibernateRegistry(IContainer settingsContainer)
        {
            var autoMappingCfg = new AutoMappingCfg();

            var databaseCfg = settingsContainer.GetInstance<IPersistenceConfigurer>(); //SQLiteConfiguration.Standard.ConnectionString(connectionString);

            var sesstionFactory = Fluently.Configure()
                                             .Database(databaseCfg)
                                             .Mappings(m =>
                                             {
                                                 m.FluentMappings.AddFromAssembly(typeof(EstacionamentoMap).Assembly)
                                                                                .Conventions.Add<MyManyToManyConvention>(new MyManyToManyConvention())
                                                                                .Conventions.Add<PropertyConvention>(new PropertyConvention())
                                                                                .Conventions.Add<EnumConvention>(new EnumConvention());
                                             })
                                             .ExposeConfiguration(config => config.SetInterceptor(new TrackingInterceptor()))
                                             .ExposeConfiguration(cfg => cfg.Properties.Add("current_session_context_class", "thread"))
                                             .BuildSessionFactory();

            For<ISessionFactory>().Singleton().Use(sesstionFactory);

            For<ISession>().HybridHttpOrThreadLocalScoped().Use(context => context.GetInstance<ISessionFactory>().OpenSession(new TrackingInterceptor()));

            For(typeof(IRepository<>)).Use(typeof(NHibernateRepository<>));
        }
Beispiel #2
0
        public NHibernateRegistry(IContainer settingsContainer)
        {
            var autoMappingCfg = new AutoMappingCfg();

            var databaseCfg = settingsContainer.GetInstance<IPersistenceConfigurer>(); //SQLiteConfiguration.Standard.ConnectionString(connectionString);            

            var sesstionFactory = Fluently.Configure()
                                             .Database(databaseCfg)
                                             .Mappings(m =>
                                             {
                                                 m.FluentMappings.AddFromAssembly(typeof(EstacionamentoMap).Assembly)
                                                                                .Conventions.Add<MyManyToManyConvention>(new MyManyToManyConvention())
                                                                                .Conventions.Add<PropertyConvention>(new PropertyConvention())
                                                                                .Conventions.Add<EnumConvention>(new EnumConvention());
                                             })
                                             .ExposeConfiguration(config => config.SetInterceptor(new TrackingInterceptor()))
                                             .ExposeConfiguration(cfg => cfg.Properties.Add("current_session_context_class", "thread"))
                                             .BuildSessionFactory();
            


            For<ISessionFactory>().Singleton().Use(sesstionFactory);
            
            For<ISession>().HybridHttpOrThreadLocalScoped().Use(context => context.GetInstance<ISessionFactory>().OpenSession(new TrackingInterceptor()));

            For(typeof(IRepository<>)).Use(typeof(NHibernateRepository<>));
        }