9

几乎可以肯定是一个愚蠢的问题,但我在任何地方都找不到答案。

入门教程中,数据库是 SQLite,因此他的会话工厂创建是使用 FluentNHibernate.Cfg.Db 命名空间中的 SQLiteConfiguration 类完成的

伟大的!但我没有看到使用 Oracle 数据库的配置类。我该怎么做呢?

交叉发布到流畅的 NH 邮件列表(附答案)

4

2 回答 2

9

这对我有用。希望这可以帮助!

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);
    }
于 2009-06-02T04:57:29.717 回答
3

这对你有帮助吗?

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

编辑: 提到的代码使用了 Fluent NHibernate 中不再存在的 ConnectionStringExpression 类。但是,该类仅用于保存OracleConfiguration _config字段。您可以安全地将该字段添加到 OracleConnectionStringExpression 类并将其删除。

剩下的问题是,NHibernate 现在会出于某种原因寻找当前版本的 Oracle.DataAccess 中没有的组件。如果你想处理这个问题,你可以做这里的tiredblogger 所做的事情。

于 2009-02-18T22:07:32.673 回答