Khac Ghi

Tháng Mười 20, 2008

Configuration changes in NHibernate 2.0

Filed under: My Ideas — Xavier @ 7:41 sáng

I downloaded NHibernate 2.0 today and started to play around with it, only to be greeted by a host of configuration errors like System.InvalidOperationException : Could not find the dialect in the configuration. It was then I remembered reading somewhere about some changes to the configuration syntax, so I downloaded the source and looked at the examples (after a brief, ill-fated search for NHibernate 2.0-specific documentation*). Here is an example of how an App.config looked for NHibernate 1.2:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <configSections>
    <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, 
             System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    [...]
   </configSections>
   <nhibernate>
    <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
    <add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2005Dialect" />
    <add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
    <add key="hibernate.connection.connection_string" value="Server=INNORIA-4; Initial Catalog=iTMDBTemp; 
           User Id=sa;Password=1234;" />
    <add key="hibernate.show_sql" value="true" />
   </nhibernate>
   [...]
 </configuration>

And here is the equivalent for version 2.0:

<?xml version="1.0" encoding="utf-8" ?>
  <configuration>
 <configSections>
   <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, 
              NHibernate" />
   [...]
  </configSections>
  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
    <session-factory>
     <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
     <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
     <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
     <property name="connection.connection_string">Server=INNORIA-4;Initial Catalog=iTMDBTemp; 
            User Id=sa;Password=1234;</property>
     <property name="show_sql">true</property>
    </session-factory>
  </hibernate-configuration>
   [...]
 </configuration>

The main changes are:
  • We aren’t using an nhibernate configuration section, it’s hibernate-configuration now (yay for more typing! :P).
  • We now have a session-factory child node for adding the configuration properties.
  • We aren’t adding properties using the <add key="..." value="..." /> syntax. Instead we are using <property name="...">(property value)</property>.
  • The property names aren’t prefixed by “hibernate” anymore, so “hibernate.connection.provider” becomes “connection.provider“.

Moral of the story is to check the source first — the NHibernate.Examples folder is filled with helpful goodies.🙂 Svend Tofte also has a helpful post on setting up NHibernate 2.0.

Để lại phản hồi »

Chưa có phản hồi.

RSS feed for comments on this post. TrackBack URI

Gửi phản hồi

Please log in using one of these methods to post your comment:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

Tạo một website miễn phí hoặc 1 blog với WordPress.com.

%d bloggers like this: