The third-party Fluent NHibernate library has its own syntax to configure NHibernate. In this recipe, we'll show you how to configure NHibernate using this syntax.
Complete the steps in Installing NHibernate recipe.
Add a console application project to your solution called
ConfigByFNH
.Set it as the Startup project for your solution.
Install NHibernate to the
ConfigByFNH
project using NuGet Package Manager Console.Install the package
FluentNHibernate
toConfigByFNH
project using NuGet Package Manager Console.In
ConfigByFNH
, add a reference to theEg.Core
project.
Add an
App.config
file with this configuration:<?xml version="1.0" encoding="utf-8"?> <configuration> <connectionStrings> <add name="db" connectionString="Server=.\SQLEXPRESS; Database=NHCookbook; Trusted_Connection=SSPI" /> </connectionStrings> </configuration>
In
Program.cs
, add the followingusing
statements:using FluentNHibernate.Cfg; using FluentNHibernate.Cfg.Db;
In the
Main
method, add this code:var config = MsSqlConfiguration.MsSql2012 .ConnectionString(connstr => connstr.FromConnectionStringWithKey("db")) .AdoNetBatchSize(100); var nhConfig = Fluently.Configure() .Database(config) .BuildConfiguration(); var sessionFactory = nhConfig.BuildSessionFactory(); Console.WriteLine("NHibernate configured fluently!"); Console.ReadKey();
Build and run your application. You should see the text NHibernate configured fluently!
Our fluent configuration can be broken down into three parts. First, we configure these properties:
We set the
dialect
property toMsSql2012Dialect
when we use theMsSql2012
static property ofMsSqlConfiguration
.The
connection.connection_string_name
object is set todb
with a call toFromConnectionStringWithKey
.We set
adonet.batch_size
to 100 with a call toAdoNetBatchSize
.
Next, from the fluent configuration, we build a standard NHibernate configuration. Finally, we build a session factory using the BuildSessionFactory
method.