几乎可以肯定是一个愚蠢的问题,但我在任何地方都找不到答案。
在入门教程中,数据库是 SQLite,因此他的会话工厂创建是使用 FluentNHibernate.Cfg.Db 命名空间中的 SQLiteConfiguration 类完成的
伟大的!但我没有看到使用 Oracle 数据库的配置类。我该怎么做呢?
交叉发布到流畅的 NH 邮件列表(附答案)
几乎可以肯定是一个愚蠢的问题,但我在任何地方都找不到答案。
在入门教程中,数据库是 SQLite,因此他的会话工厂创建是使用 FluentNHibernate.Cfg.Db 命名空间中的 SQLiteConfiguration 类完成的
伟大的!但我没有看到使用 Oracle 数据库的配置类。我该怎么做呢?
交叉发布到流畅的 NH 邮件列表(附答案)
这对我有用。希望这可以帮助!
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);
}
这对你有帮助吗?
http://tiredblogger.wordpress.com/2008/12/04/persistanceconfiguration-for-oraclefluent-nhibernate/
编辑: 提到的代码使用了 Fluent NHibernate 中不再存在的 ConnectionStringExpression 类。但是,该类仅用于保存OracleConfiguration _config字段。您可以安全地将该字段添加到 OracleConnectionStringExpression 类并将其删除。
剩下的问题是,NHibernate 现在会出于某种原因寻找当前版本的 Oracle.DataAccess 中没有的组件。如果你想处理这个问题,你可以做这里的tiredblogger 所做的事情。