代码之家  ›  专栏  ›  技术社区  ›  George Mauer

Fluent NHibernate-如何为Oracle配置?

  •  8
  • George Mauer  · 技术社区  · 16 年前

    几乎可以肯定是个愚蠢的问题,但我找不到答案。

    Getting Started tutorial 数据库是sqlite,因此他的会话工厂创建 使用FluentHibernate.cfg.db命名空间中的sqliteConfiguration类完成

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

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

    2 回复  |  直到 16 年前
        1
  •  8
  •   kimsk    16 年前

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

    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);
        }
    
        2
  •  3
  •   George Mauer    16 年前

    这对你有帮助吗?

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

    编辑: 上面提到的代码使用的ConnectionStringExpression类在Fluent NHibernate中不再存在。但是,该类除了用于 OracleConfiguration_配置 字段。您可以安全地将字段添加到OracleConnectionStringExpression类并将其移除。

    剩下的问题是,nhibernate现在出于某种原因将查找不在当前版本oracle.dataaccess中的组件。如果你想解决这个问题,你可以像泰德博格那样做。 here .

    推荐文章