Configuring NHibernate with Fluent NHibernate
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.
Getting ready
- 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.
How to do it…
- 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!
How it works…
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.
See also
- Configuring NHibernate with App.config or Web.config
- Configuring NHibernate with XML
- Configuring NHibernate with code