NHibernate 2.1 updates schema metadata without being asked to
- Written by Boris Drajer
- Published in NHibernate
In NHibernate 2.1, the session factory is set up to access the database immediately when you build it. This is done by a Hbm2ddl component to update something called SchemaMetaData: I’m not sure what this is all about, but I am certain that such behaviour is not nice. The previous version of NHibernate didn’t do it, so I expect the new one to behave likewise unless I explicitly order the change.
The solution for this is to add a line to your hibernate.cfg.xml file that says:
<property name="hbm2ddl.keywords">none</property>
Note that completely omitting this setting will actually enable the feature… Did I already mention I don’t like it? I don’t, so much that I decided not to change config files but to hardcode it disabled. I use one global method to load the NHibernate configuration, so this is easy. The code looks something like this:
_configuration = new global::NHibernate.Cfg.Configuration(); _configuration.Configure(); _configuration.SetProperty("hbm2ddl.keywords", "none");