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
ConfigByAppConfigto your solution. - Set it as the Startup project for your solution.
- Install NHibernate to the
ConfigByAppConfigproject using the NuGet Package Manager Console. - In
ConfigByAppConfig, add a reference to theEg.Coreproject. - Add an
App.configfile to your project.
How to do it…
- Open the
App.configfile. - Declare a section for the NHibernate configuration, as shown here:
<configSections> <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /> </configSections>
- Add a
connectionStringssection 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.configfile 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.csand addusing NHibernate.Cfg;to the beginning of the file. - In the
Mainmethod, 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