Reputation:
I want to use the NHibernate configuration for FluentNhibernate when building a session.
This how I am constructing my factory session:
lock (_factorylock)
{
if (_factory == null)
{
nHibernateConfig = delegate
{
GetConfiguration();
};
nHibernateConfig.Invoke(GetConfiguration());
var cfg = Fluently.Configure().
Database(MsSqlConfiguration.MsSql2012)
.ExposeConfiguration( nHibernateConfig)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<UserMap>());
_factory = cfg.BuildSessionFactory();
}
}
I am not sure about the delegate that I am using as well as the invoke method that I am calling there.
The method GetConfiguration looks like this:
private static NHibernate.Cfg.Configuration GetConfiguration()
{
var configuration = new NHibernate.Cfg.Configuration();
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
var configFile = Directory.GetFiles(baseDirectory, ConfigFile, SearchOption.AllDirectories).FirstOrDefault();
return configuration.Configure(configFile);
}
and of course, I have the xml config that contains a connection string:
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="dialect">NHibernate.Dialect.MsSql2012Dialect, NHibernate</property>
<property name="connection.connection_string">Database=authentication; Port=3306; Server=127.0.0.1; Uid=root; Pwd=; persistsecurityinfo=True;SslMode=none </property>
<property name="adonet.batch_size">100</property>
</session-factory>
</hibernate-configuration>
Upvotes: 0
Views: 49
Reputation: 21
Figured it out.
There is no need for the delege and the GetConfiguration method.
All that I had to do was to insatiate the configuration object
var configuration = new Configuration();
configuration.Configure();
var cfg = Fluently.Configure(configuration)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<UserMap>());
_factory = cfg.BuildSessionFactory();
worked like a charm and my code is a lot cleaner.
Upvotes: 1