几乎可以肯定是一个愚蠢的问题,但我无法在任何地方找到答案。
在Getting Started tutorial数据库是SQLite,所以他的会话工厂创建 使用FluentNHibernate.Cfg.Db命名空间中的SQLiteConfiguration类完成
大!但我没有看到使用Oracle数据库的Configuration类。我该怎么做?
答案 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。