- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 10
Simplify.FluentNHibernate
        Alexanderius edited this page Jul 15, 2025 
        ·
        6 revisions
      
    Provides:
- 
FluentConfigurationclass extensions which allow you to easily configure your database connection.
- NHibernate ISessionextensions which allow you to write queries with lambda expressions.
- 
SchemaExporter,SchemaUpdater
Available at NuGet as binary package
namespace MyApp.Database
{
        public class MyDbSessionFactoryBuilder
        {
                private readonly ISessionFactory _instance;
                public ISessionFactory Instance => _instance;
                public MyDbSessionFactoryBuilder(IConfiguration cfg, string configSectionName = "MyDatabaseConnectionSettings")
                {
                        var configuration = Fluently.Configure();
                        configuration.InitializeFromConfigMsSql(cfg, configSectionName);
                        configuration.AddMappingsFromAssemblyOf<MyDbSessionFactoryBuilder>();
                        _instance = configuration.BuildSessionFactory();
                }
        }
}{
    "MyDatabaseConnectionSettings":
    {
        "ServerName": "Server name",
        "DataBaseName": "database name",
        "UserName": "user name",
        "UserPassword": "password"
    }
}namespace MyApp.Database
{
        public class MyDbSessionFactoryBuilder
        {
                private readonly ISessionFactory _instance;
                public ISessionFactory Instance => _instance;
                public MyDbSessionFactoryBuilder(string configSectionName = "MyDatabaseConnectionSettings")
                {
                        var configuration = Fluently.Configure();
                        configuration.InitializeFromConfigMsSql(configSectionName);
                        configuration.AddMappingsFromAssemblyOf<MyDbSessionFactoryBuilder>();
                        _instance = configuration.BuildSessionFactory();
                }
        }
}<?xml version="1.0" encoding="utf-8"?>
<configuration>
        <configSections>
                <section name="MyDatabaseConnectionSettings" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        </configSections>
        <MyDatabaseConnectionSettings>
                <add key="ServerName" value="Server name" />
                <add key="DataBaseName" value="database name" />
                <add key="UserName" value="user name" />
                <add key="UserPassword" value="password" />
        </MyDatabaseConnectionSettings>
</configuration>| Database type | Method | Comment | 
|---|---|---|
| Microsoft SQL Server | InitializeFromConfigMsSql | Connection using System.Data.SqlClient(System.Dataunder .NET framework) managed driver | 
| Microsoft SQL Server | InitializeFromConfigMsSqlMicrosoftDriver | Connection using Microsoft.Data.SqlClientmanaged driver | 
| MySQL | InitializeFromConfigMySql | Connection using MySql.Datamanaged driver | 
| PostgreSQL | InitializeFromConfigPostgreSql | Connection using Npgsqlmanaged driver | 
| Oracle | InitializeFromConfigOracleOdpNet | Connection using Oracle.ManagedDataAccessmanaged driver (recommended for Oracle) | 
| Oracle | InitializeFromConfigOracleOdpNetNative | Connection using odp.net.x86orodp.net.x64unmanaged drivers | 
| Oracle | InitializeFromConfigOracleClient | Connection using Oracle.DataAccess.x86orOracle.DataAccess.x64unmanaged drivers | 
| SQLite | InitializeFromConfigSqLite | Connection using System.Data.SQLitemanaged driver | 
| SQLite | InitializeFromConfigSqLiteInMemory | Connection using System.Data.SQLitemanaged driver using in-memory database | 
| Option Name | Type | Description | 
|---|---|---|
| Port | int | Database port number | 
| ShowSql | bool | Executed SQL queries can be displayed (in the output specified in the ShowSqlOutputTypeparameter) by settingShowSqloption, default value isfalse | 
| ShowSqlOutputType | ShowSqlOutputType | Sets the executed SQL commands output type. Possible values: Console,Trace. Default value is:Console | 
Can be specified via lambda extension, for example, a custom dialect:
configuration.InitializeFromConfigMsSql(configSectionName, c => c.Dialect<MsSql2012Dialect>());var user = session.GetSingleObject(x => x.Name == "FooName");
var users = session.GetList(x => x.Name.StartsWith("A"));