流畅的NHibernate - 如何配置oracle?

时间:2009-02-18 21:31:36

标签: oracle nhibernate fluent-nhibernate

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

Getting Started tutorial数据库是SQLite,所以他的会话工厂创建 使用FluentNHibernate.Cfg.Db命名空间中的SQLiteConfiguration类完成

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

交叉发布到fluent NH mailing list (with answer)

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:3)

这对你有帮助吗?

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

编辑:提到的代码使用了Fluent NHibernate中不再存在的ConnectionStringExpression类。但是,除了保留 OracleConfiguration _config 字段之外,该类不用于任何其他内容。您可以放心地将该字段添加到OracleConnectionStringExpression类并将其删除。

剩下的问题是NHibernate现在会出于某种原因寻找不在Oracle.DataAccess当前版本中的组件。如果你想要处理那些你可以做的事情,那就是fillblogger做的here