/// <summary> /// Gets a mapping that can be used with NHibernate. /// </summary> /// <param name="additionalTypes">Additional Types that are to be added to the mapping, this is useful for adding your ApplicationUser class</param> /// <returns></returns> public static HbmMapping GetIdentityMappings(System.Type[] additionalTypes) { var baseEntityToIgnore = new[] { typeof(EntityWithTypedId<int>), typeof(EntityWithTypedId<string>) }; // Modified for NS: PIMS.Infrastructure.NHibernate.NHAspNetIdentity var allEntities = new List<System.Type> { typeof(IdentityUser), typeof(IdentityRole), typeof(IdentityUserLogin), typeof(IdentityUserClaim), }; allEntities.AddRange(additionalTypes); var mapper = new ConventionModelMapper(); DefineBaseClass(mapper, baseEntityToIgnore.ToArray()); mapper.IsComponent((type, declared) => typeof(ValueObject).IsAssignableFrom(type)); // Modified for NS: PIMS.Infrastructure.NHibernate.NHAspNetIdentity mapper.AddMapping<IdentityUserMap>(); mapper.AddMapping<IdentityRoleMap>(); mapper.AddMapping<IdentityUserClaimMap>(); return mapper.CompileMappingFor(allEntities); }
public static void Configure(ISessionStorage storage) { var baseEntityToIgnore = new[] { typeof(NHibernate.AspNet.Identity.DomainModel.EntityWithTypedId<int>), typeof(NHibernate.AspNet.Identity.DomainModel.EntityWithTypedId<string>), }; var allEntities = new[] { typeof(IdentityUser), typeof(ApplicationUser), typeof(IdentityRole), typeof(IdentityUserLogin), typeof(IdentityUserClaim), }; var mapper = new ConventionModelMapper(); DefineBaseClass(mapper, baseEntityToIgnore); mapper.IsComponent((type, declared) => typeof(NHibernate.AspNet.Identity.DomainModel.ValueObject).IsAssignableFrom(type)); mapper.AddMapping<IdentityUserMap>(); mapper.AddMapping<IdentityRoleMap>(); mapper.AddMapping<IdentityUserClaimMap>(); var mapping = mapper.CompileMappingFor(allEntities); System.Diagnostics.Debug.WriteLine(mapping.AsString()); var configuration = NHibernateSession.Init(storage, mapping); BuildSchema(configuration); }
/// <summary> /// Gets a mapping that can be used with NHibernate. /// </summary> /// <param name="additionalTypes">Additional Types that are to be added to the mapping, this is useful for adding your ApplicationUser class</param> /// <returns></returns> public static HbmMapping GetIdentityMappings(System.Type[] additionalTypes) { var baseEntityToIgnore = new[] { typeof(NHibernate.AspNet.Identity.DomainModel.EntityWithTypedId<int>), typeof(NHibernate.AspNet.Identity.DomainModel.EntityWithTypedId<string>), }; var allEntities = new List<System.Type> { typeof(ApplicationTenant), typeof(IdentityUser), typeof(IdentityRole), typeof(IdentityUserLogin), typeof(IdentityUserClaim), }; allEntities.AddRange(additionalTypes); var mapper = new ConventionModelMapper(); DefineBaseClass(mapper, baseEntityToIgnore.ToArray()); mapper.IsComponent((type, declared) => typeof(NHibernate.AspNet.Identity.DomainModel.ValueObject).IsAssignableFrom(type)); mapper.AddMapping<IdentityUserMap>(); mapper.AddMapping<IdentityRoleMap>(); mapper.AddMapping<IdentityUserClaimMap>(); mapper.AddMapping<ApplicationTenantMap>(); return mapper.CompileMappingFor(allEntities); }
/// <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(); }
static Configuration BuildSessionFactory() { var config = new Configuration(); config.SetProperties(CreateSessionFactoryDefaultProperties()); config.SetProperty(NhCfgEnv.ConnectionString, "Data Source=db-dev4.gdepb.gov.cn;Initial Catalog=Test;Persist Security Info=True;User ID=udev;Password=devdev"); var mapper = new ConventionModelMapper(); mapper.AddMapping(new UserMapping()); mapper.AddMapping(new RoleMapping()); var mapping = mapper.CompileMappingForAllExplicitlyAddedEntities(); config.AddMapping(mapping); return config; }