Configuration classes and DI extensions for configuring NHibernate in an Asp.Net Core application.
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"Default": "server=(localdb)\\mssqlserver;"
},
"NHibernate": {
"ConnectionStringName": "Default",
"Properties": {
"connection.driver_class": "MilestoneTG.NHibernate.TransientFaultHandling.SqlServer.SqlAzureClientDriver, MilestoneTG.NHibernate.TransientFaultHandling.SqlServer",
"dialect": "NHibernate.Dialect.MsSql2012Dialect",
"hbm2ddl.keywords": "auto-quote",
"show_sql": "true",
"generate_statistics": "true"
}
}
}
To use the default filename of hibernate.hbm.xml
:
services.AddNHibernate();
Or you can specify your own file:
services.AddNHibernate("mapping.xml");
Or you can pass in a custom configuration:
services.AddNHibernate((provider, config)=>{
IDictionary<string, string> properties = new Dictionary<string, string> {
{ "connection.connection_string", Configuration.GetConnectionString("Default") },
{ "dialect", "NHibernate.Dialect.SQLiteDialect" },
{ "hbm2ddl.keywords", "auto-quote"},
{ "show_sql", "true"},
{ "generate_statistics", "true"}
};
config.AddProperties(properties);
config.AddXmlFile("mappings.xml");
});
Configuration extensions for configuring NHibernate with NHibernate.Mapping.Attributes.
Example:
var config = new Configuration();
config.AddMappingAssembly("Acme.Domain");
Using mapping attributes with Asp.Net Core:
services.AddNHibernate((provider, config)=>{
var options = Configuration.GetSection(NHibernateOptions.SECTION_NAME).Get<NHibernateOptions>();
config.Properties.Add("connection.connection_string", Configuration.GetConnectionString(options.ConnectionStringName))
config.AddProperties(options.Properties);
config.AddMappingAssembly("Acme.Domain");
});