public NHibernateProviderManager(NHibernate.Cfg.Configuration configuration)
        {
            // Build the NHibernate session factory for the configuration
            this.SessionFactory = configuration.BuildSessionFactory();

            // Extract the connection string from the NHibernate configuration
            this.ConnectionString = configuration.Properties[ConnectionStringKey];
        }
Пример #2
0
 public CoreRegistry(NHibernate.Cfg.Configuration configuration) {
     ForSingletonOf<ISessionFactory>()
         .Use(configuration.BuildSessionFactory());
     For<IUnitOfWork>()
         .HybridHttpOrThreadLocalScoped()
         .Use<NHibernateUnitOfWork>();
     For<IRepository>()
         .HybridHttpOrThreadLocalScoped()
         .Use<NHibernateRepository>();
     For<INHibernateUnitOfWork>()
         .Use(x => (INHibernateUnitOfWork)x.GetInstance<IUnitOfWork>());
     Scan(x => {
         x.AssemblyContainingType<IDomainObject>();
         x.TheCallingAssembly();
         x.AddAllTypesOf<IDomainObject>();
         x.WithDefaultConventions();
     });
 }
Пример #3
0
        public override void ConfigureMapping(NHibernate.Cfg.Configuration configuration)
        {
            var mapper = new ConventionModelMapper();

            mapper.BeforeMapProperty += (inspector, member, customizer) =>
            {
                if (member.LocalMember.GetPropertyOrFieldType() == typeof(string))
                {
                    customizer.Length(50);
                }
            };
            mapper.BeforeMapClass += (inspector, type, customizer) => customizer.Id(im => im.Generator(Generators.GuidComb));
            // define the mapping shape

            mapper.Class<Hotel>(ca => ca.List(item => item.Reservations, cm => cm.Key(km => km.Column("HotelId"))));
            mapper.Class<Room>(ca => ca.List(item => item.Reservations, cm => cm.Key(km =>
                                                                                               	{
                                                                                               		km.Column("RoomId");
                                                                                               		km.OnDelete(OnDeleteAction.NoAction);
                                                                                               	})));
            mapper.Class<Reservation>(ca =>
                                          	{
                                                ca.ManyToOne(item => item.Hotel, m => { m.Column("HotelId"); m.Insert(false); m.Update(false); m.Lazy(LazyRelation.Proxy);} );
                                                ca.ManyToOne(item => item.Room, m => { m.Column("RoomId"); m.Insert(false); m.Update(false); m.Lazy(LazyRelation.Proxy); });
                                          	});

            // list all the entities we want to map.
            IEnumerable<Type> baseEntities = GetMappingTypes();

            // compile the mapping for the specified entities
            HbmMapping mappingDocument = mapper.CompileMappingFor(baseEntities);

            // inject the mapping in NHibernate
            configuration.AddDeserializedMapping(mappingDocument, "Domain");
            // fix up the schema
            SchemaMetadataUpdater.QuoteTableAndColumns(configuration);

            SessionFactory.SessionFactoryInstance = configuration.BuildSessionFactory();
        }
        public override void ConfigureMapping(NHibernate.Cfg.Configuration configuration)
        {
            var orm = new ObjectRelationalMapper();
            var mapper = new Mapper(orm);

            mapper.AddPropertyPattern(mi => TypeExtensions.GetPropertyOrFieldType(mi) == typeof(string), pm => pm.Length(50));
            orm.Patterns.PoidStrategies.Add(new NativePoidPattern());
            orm.Patterns.PoidStrategies.Add(new GuidOptimizedPoidPattern());

            // list all the entities we want to map.
            IEnumerable<Type> baseEntities = GetMappingTypes();

            // we map all classes as Table per class
            orm.TablePerClass(baseEntities);

            mapper.Customize<Hotel>(ca => ca.Collection(item => item.Reservations, cm => cm.Key(km => km.Column("HotelId"))));
            mapper.Customize<Room>(ca => ca.Collection(item => item.Reservations, cm => cm.Key(km =>
            {
                km.Column("RoomId");
                km.OnDelete(OnDeleteAction.NoAction);
            })));
            mapper.Customize<Reservation>(ca =>
            {
                ca.ManyToOne(item => item.Hotel, m => { m.Column("HotelId"); m.Insert(false); m.Update(false); m.Lazy(LazyRelation.Proxy); });
                ca.ManyToOne(item => item.Room, m => { m.Column("RoomId"); m.Insert(false); m.Update(false); m.Lazy(LazyRelation.Proxy); });
            });

            // compile the mapping for the specified entities
            HbmMapping mappingDocument = mapper.CompileMappingFor(baseEntities);

            // inject the mapping in NHibernate
            configuration.AddDeserializedMapping(mappingDocument, "Domain");
            // fix up the schema
            SchemaMetadataUpdater.QuoteTableAndColumns(configuration);

            SessionFactory.SessionFactoryInstance = configuration.BuildSessionFactory();
        }
Пример #5
0
 public NHibernateProvider(NHibernate.Cfg.Configuration configuration)
 {
     Configuration = configuration;
     _sessionFactory = Configuration.BuildSessionFactory();
 }
 /// <summary>
 /// Initials the ize.
 /// </summary>
 /// <param name="config">The config.</param>
 /// <returns></returns>
 public static ISession InitialIze(NHibernate.Cfg.Configuration config)
 {
     Factory = config.BuildSessionFactory();
     return Factory.OpenSession();
 }
Пример #7
0
        private static ISessionFactory getSessionFactory(ref ISessionFactory factory, NHibernate.Cfg.Configuration cfg)
        {
            if (factory != null)
            {
                if (factory.IsClosed)
                {
                    factory.Dispose();
                    factory = null;
                }
            }

            if (factory == null)
            {
                factory = cfg.BuildSessionFactory();

            }
            return factory;
        }