2009-02-18 18 views
8

Fast sicher eine dumme Frage, aber ich kann nirgends die Antwort finden.Fluent NHibernate - wie für Orakel konfigurieren?

In den Getting Started tutorial die Datenbank SQLite und so seine Sitzung Fabrik Schaffung wird unter Verwendung der SQLiteConfiguration Klasse im FluentNHibernate.Cfg.Db getan Namespace

Great! Aber ich sehe keine Konfigurationsklasse für die Verwendung einer Oracle-Datenbank. Wie mache ich das?

Cross-Gepostet zum fluent NH mailing list (with answer)

Antwort

8

Das funktioniert für mich. Hoffe das hilft!

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); 
    } 
+0

Ja, ich denke du verwendest den Patch, der seit meiner Veröffentlichung gesendet wurde –

+0

Hast du ein Beispiel dafür, wie die Datenquelle beim Erstellen der Datenbank aussehen würde? –

+0

Es ist nur normale Oracle Data Source. Das sollte helfen? http://stackoverflow.com/questions/11400794/oracle-odp-net-connection-string-what-goes-in-data-source – kimsk

3

Findest du, das hilft?

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

Edit: Der genannte Code die ConnectionStringExpression-Klasse verwendet, die nicht mehr existiert in Fluent NHibernate. Diese Klasse wird jedoch nur für das Feld OracleConfiguration _config verwendet. Sie können das Feld sicher zur OracleConnectionStringExpression-Klasse hinzufügen und entfernen.

Das verbleibende Problem ist, dass NHibernate jetzt aus irgendeinem Grund nach Komponenten sucht, die nicht im aktuellen Build von Oracle.DataAccess sind. Wenn Sie damit umgehen wollen, können Sie tun, was tiredblogger tat here.

+0

Ich denke schon .... vielen Dank! –

+0

Wo bekommt er COnnectionStringExpression obwohl? –

+0

Jemand hat einen Patch eingereicht, er ist jetzt konfigurierbar von FNH –