流畅的NHibernate数据库优先配置

时间:2017-04-06 12:20:57

标签: c# nhibernate oracle11g fluent-nhibernate fluent-nhibernate-mapping

我是Fluent Nhibernate的新手。我们已经开始将它用于数据访问的后台应用程序。

客户端已经有了一个数据库,因此我们希望使用数据库第一种方法,因为我们不想生成表格。

对于概念证明解决方案,我使用了以下会话工厂配置

var oracleConfiguration = OracleDataClientConfiguration.Oracle10.ConnectionString("Data Source=MyDB;User Id=MyUserName; Password=myPassword; Pooling=true");
        return Fluently.Configure()
                       .Database(oracleConfiguration)
                       .Mappings(m => m.FluentMappings.Add<NhtestMap>())
                       .ExposeConfiguration((config) => { new SchemaExport(config).Create(false, true); })
                       .BuildSessionFactory();

由于我在运行此代码之前已在我的数据库中拥有此表,因此方法&#39; ExposeConfiguration&#39;已经放弃了测试表&#39; NHTest&#39;。

我阅读了很少的博客并且知道这个方法在第一次运行时创建了表(这是Code First方法所需的行为)。但对我们来说,使用DB First方法,我们不想删除或创建表。

有人可以帮我正确配置Session Factory for DB First方法吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

var oracleConfiguration = OracleDataClientConfiguration.Oracle10.ConnectionString("Data Source=MyDB;User Id=MyUserName; Password=myPassword; Pooling=true");
        return Fluently.Configure()
                       .Database(oracleConfiguration)
                       .Mappings(m => m.FluentMappings.Add<NhtestMap>())
//  Remove this line //.ExposeConfiguration((config) => { new SchemaExport(config).Create(false, true); })
                       .BuildSessionFactory();