Configuring NHibernate with App.config or Web.config
Another common method for configuring NHibernate uses a .NET configuration file. In this recipe, we will show you how to configure NHibernate using App.config
or Web.config
files, to provide an identical configuration to the previous recipe.
Getting ready
- Complete the steps in the Installing NHibernate recipe.
- Add a console application project named
ConfigByAppConfig
to your solution. - Set it as the Startup project for your solution.
- Install NHibernate to the
ConfigByAppConfig
project using the NuGet Package Manager Console. - In
ConfigByAppConfig
, add a reference to theEg.Core
project. - Add an
App.config
file to your project.
How to do it…
- Open the
App.config
file. - Declare a section for the NHibernate configuration, as shown here:
<configSections> <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /> </configSections>
- Add a
connectionStrings
section with a connection string:<connectionStrings> <add name="db" connectionString="Server=.\SQLEXPRESS; Database=NHCookbook; Trusted_Connection=SSPI"/> </connectionStrings>
- Add your hibernate-configuration section:
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name="dialect"> NHibernate.Dialect.MsSql2008Dialect, NHibernate </property> <property name="connection.connection_string_name"> db </property> <property name="adonet.batch_size"> 100 </property> </session-factory> </hibernate-configuration>
- Your completed
App.config
file should look similar to this:<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /> </configSections> <connectionStrings> <add name="db" connectionString="Server=.\SQLEXPRESS; Database=NHCookbook; Trusted_Connection=SSPI" /> </connectionStrings> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name="dialect"> NHibernate.Dialect.MsSql2008Dialect, NHibernate </property> <property name="connection.connection_string_name"> db </property> <property name="adonet.batch_size"> 100 </property> </session-factory> </hibernate-configuration> </configuration>
- Open
Program.cs
and addusing NHibernate.Cfg;
to the beginning of the file. - In the
Main
method, add the following code to configure NHibernate:var nhConfig = new Configuration().Configure(); var sessionFactory = nhConfig.BuildSessionFactory(); Console.WriteLine("NHibernate Configured!"); Console.ReadKey();
- Build and run your application. You will see the text NHibernate Configured!
How it works…
This recipe works in the same way as the previous recipe. However, in this recipe, we have moved the hibernate-configuration
element from the hibernate.cfg.xml
file to App.config
. The connection.connection_string_name
property references our connection string named db
. We can name the connection string anything we like, as long as this property matches the connection string's name.
There's more…
An ASP.NET application's Web.config
uses the common .NET framework configuration platform and has the same structure as App.config
. You can therefore use the same technique to configure NHibernate in a web application.
See also
- Configuring NHibernate with hibernate.cfg.xml
- Configuring NHibernate with code
- Configuring NHibernate with Fluent NHibernate