views:

1700

answers:

2

Almost certainly a stupid question but I can't find the answer anywhere.

In the Getting Started tutorial the database is SQLite and so his session factory creation is done using the SQLiteConfiguration class in the FluentNHibernate.Cfg.Db namespace

Great! But I don't see a Configuration class for using an Oracle database. How do I do this?

Cross-posted to the fluent NH mailing list (with answer)

+1  A: 

Does this helps you?

http://tiredblogger.wordpress.com/2008/12/04/persistanceconfiguration-for-oraclefluent-nhibernate/

Edit: The code mentioned uses the ConnectionStringExpression class which no longer exists in Fluent NHibernate. However, that class isn't used for anything other than holding the OracleConfiguration _config field. You can safely, add the field to the OracleConnectionStringExpression class and remove it.

The remaining issue is that NHibernate will now for some reason look for components that are not in the current build of Oracle.DataAccess. If you want to deal with that you can do what tiredblogger did here.

Alex Reitbort
I think so....thanks a lot!
George Mauer
Where is he getting COnnectionStringExpression<T> though?
George Mauer
Someone submitted a patch, it is now configurable from FNH
George Mauer
+1  A: 

This works for me. Hope this helps!

private static ISessionFactory CreateSessionFactory()
    {

        var cfg = OracleClientConfiguration.Oracle9
            .ConnectionString(c =>
                c.Is("DATA SOURCE=<<NAME>>;PERSIST SECURITY INFO=True;USER ID=<<USER_NAME>>;Password=<<PASSWORD>>"));

        return Fluently.Configure()
                .Database(cfg)
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<CLASS_NAME>().ExportTo(@".\"))
                .ExposeConfiguration(BuildSchema)
        .BuildSessionFactory();
    }

    private static void BuildSchema(NHibernate.Cfg.Configuration config)
    {
        // this NHibernate tool takes a configuration (with mapping info in)
        // and exports a database schema from it
        new SchemaExport(config)
          .Create(false, true);
    }
kimsk
Yeah, I think you're using the patch that was submitted since I posted this
George Mauer