/// <summary> /// Adds NHibernate core components to the DI system. /// </summary> /// <param name="builder">The builder.</param> /// <param name="databaseConfiguration">NHibernate database configuration.</param> /// <param name="configurationStoreOptions">Configuration store options (needed to configure NHibernate mappings).</param> /// <param name="operationalStoreOptions">Operational store options (needed to configure NHibernate mappings).</param> private static IIdentityServerBuilder AddNHibernatePersistenceSupport( this IIdentityServerBuilder builder, NHibernate.Cfg.Configuration databaseConfiguration, ConfigurationStoreOptions configurationStoreOptions, OperationalStoreOptions operationalStoreOptions) { // Adds NHibernate mappings databaseConfiguration.AddConfigurationStoreMappings(configurationStoreOptions); databaseConfiguration.AddOperationalStoreMappings(operationalStoreOptions); // Registers NHibernate components builder.Services.AddSingleton(databaseConfiguration.BuildSessionFactory()); builder.Services.AddScoped(provider => { var factory = provider.GetService <ISessionFactory>(); return(factory.OpenSession()); }); builder.Services.AddScoped(provider => { var factory = provider.GetService <ISessionFactory>(); return(factory.OpenStatelessSession()); }); return(builder); }
/// <summary> /// Adds NHibernate core components to the DI system. /// </summary> /// <param name="builder">The builder.</param> /// <param name="databaseConfiguration">NHibernate database configuration.</param> /// <param name="configurationStoreOptions">Configuration store options (needed to configure NHibernate mappings).</param> /// <param name="operationalStoreOptions">Operational store options (needed to configure NHibernate mappings).</param> private static IIdentityServerBuilder AddNHibernatePersistenceSupport( this IIdentityServerBuilder builder, NHibernate.Cfg.Configuration databaseConfiguration, ConfigurationStoreOptions configurationStoreOptions, OperationalStoreOptions operationalStoreOptions) { // Adds NHibernate mappings databaseConfiguration.AddConfigurationStoreMappings(configurationStoreOptions); databaseConfiguration.AddOperationalStoreMappings(operationalStoreOptions); //We need this to quote fields named with reserved keyword SchemaMetadataUpdater.QuoteTableAndColumns(databaseConfiguration, Dialect.GetDialect(databaseConfiguration.Properties)); // Registers NHibernate components builder.Services.AddSingleton(databaseConfiguration.BuildSessionFactory()); builder.Services.AddScoped(provider => { var factory = provider.GetService <ISessionFactory>(); return(factory.OpenSession()); }); builder.Services.AddScoped(provider => { var factory = provider.GetService <ISessionFactory>(); return(factory.OpenStatelessSession()); }); return(builder); }