public Configuration GetConfiguration() { if (this.configuration != null) { return(this.configuration); } var mappingAssemblies = GetMappingAssemblies(); var autoPersistenceModel = GenerateAutoPersistenceModel(mappingAssemblies); var builder = new NHibernateSessionFactoryBuilder() .AddMappingAssemblies(mappingAssemblies) .UseAutoPersistenceModel(autoPersistenceModel); var defaultConfigFilePath = Path.Combine(basePath, NHibernateSessionFactoryBuilder.DefaultNHibernateConfigFileName); if (File.Exists(defaultConfigFilePath)) { Debug.WriteLine( $"Found default configuration file {NHibernateSessionFactoryBuilder.DefaultNHibernateConfigFileName} in output folder. Loading configuration from '{defaultConfigFilePath}'."); builder.UseConfigFile(defaultConfigFilePath); } configuration = builder.BuildConfiguration(); return(configuration); }