9 Stimmen

Fluent NHibernate - wie konfiguriert man für Oracle?

Sicherlich eine dumme Frage, aber ich kann die Antwort nirgends finden.

In der Erste Schritte-Tutorial die Datenbank ist SQLite und damit die Erstellung der Sitzungsfabrik erfolgt mit der Klasse SQLiteConfiguration im Namensraum FluentNHibernate.Cfg.Db

Großartig! Aber ich sehe keine Konfigurationsklasse für die Verwendung einer Oracle-Datenbank. Wie kann ich das tun?

Querveröffentlichung auf der fluent NH Mailingliste (mit Antwort)

9voto

kimsk Punkte 2221

Das funktioniert bei mir. Hoffentlich hilft das!

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

3voto

Alex Reitbort Punkte 13255

Hilft Ihnen das weiter?

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

Editar: Der genannte Code verwendet die Klasse ConnectionStringExpression, die in Fluent NHibernate nicht mehr existiert. Diese Klasse wird jedoch für nichts anderes verwendet als für das Halten der OracleKonfiguration _config Feld. Sie können das Feld gefahrlos der Klasse OracleConnectionStringExpression hinzufügen und es entfernen.

Das verbleibende Problem ist, dass NHibernate nun aus irgendeinem Grund nach Komponenten sucht, die nicht im aktuellen Build von Oracle.DataAccess enthalten sind. Wenn Sie damit umgehen wollen, können Sie tun, was tiredblogger getan hat aquí .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X