/// <summary> /// constructor configures a SessionFactory based on the configuration passed in /// </summary> private SessionFactoryProvider() { Name = "NHibernate.AspNet.Identity"; var baseEntityToIgnore = new[] { typeof(SharpArch.Domain.DomainModel.Entity), typeof(EntityWithTypedId<int>), typeof(EntityWithTypedId<string>), }; var allEntities = new[] { typeof(IdentityUser), typeof(ApplicationUser), typeof(IdentityRole), typeof(IdentityUserLogin), typeof(IdentityUserClaim), typeof(Foo), typeof(ApplicationTenant), }; var mapper = new ConventionModelMapper(); DefineBaseClass(mapper, baseEntityToIgnore); mapper.IsComponent((type, declared) => typeof(ValueObject).IsAssignableFrom(type)); mapper.AddMapping<ApplicationTenantMap>(); mapper.AddMapping<IdentityUserMap>(); mapper.AddMapping<IdentityRoleMap>(); mapper.AddMapping<IdentityUserClaimMap>(); var mapping = mapper.CompileMappingForEach(allEntities); _configuration = new Configuration(); _configuration.Configure("sqlite-nhibernate-config.xml"); foreach (var map in mapping) { Console.WriteLine(map.AsString()); _configuration.AddDeserializedMapping(map, null); } //log4net.Config.XmlConfigurator.Configure(); SessionFactory = _configuration.BuildSessionFactory(); }