protected virtual FluentConfiguration CreateProductionSchema()
{
var cfg = new AutomappingConfiguration();
var configuration = Fluently.Configure()
.Diagnostics(d => d.RegisterListener(new CommonLoggingDiagnosticListener()).Enable())
.Database(this.CreatePersistenceConfigurator())
.Mappings(
m => m
.AutoMappings.Add(
() => AutoMap
.AssemblyOf<BaseEntity>(cfg)
.UseOverridesFromAssemblyOf<TableNameConvention>()
.Conventions
.AddFromAssemblyOf<TableNameConvention>()))
.Cache(
c => c
.ProviderClass<NHibernate.Cache.HashtableCacheProvider>()
.UseQueryCache())
.ExposeConfiguration(
config =>
{
config.SetInterceptor(new AuditInterceptor());
var type = this.GetSqlExceptionConverterType();
if (type != null)
{
config.SetProperty(
NHibernate.Cfg.Environment.SqlExceptionConverter,
type.AssemblyQualifiedName);
}
});
return configuration;
}