Skip to content

milestonetg/nhibernate-extensions

Repository files navigation

NHibernate Extensions

Build Status GitHub

Packages

MilestoneTG.NHibernate.Extensions.AspNetCore

Nuget Nuget

Configuration classes and DI extensions for configuring NHibernate in an Asp.Net Core application.

Configuration

{
  "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"
    }
  }
}

Dependency Injection

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");
});

MilestoneTG.NHibernate.Extensions.Mapping.Attributes

Nuget Nuget

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");
});

About

Extensions and utilities for working with NHibernate

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages