0

我是Fluent Nhibernate的新手。我們已經開始將它用於數據訪問的後臺應用程序。流利的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(); 

因爲我在運行此代碼之前已經在我的數據庫該表中,方法「ExposeConfiguration」已降至測試表「 NHTest」。

我讀了很少的博客,並且知道這種方法在第一次運行時創建表(這是Code First方法的必需行爲)。但對於我們來說,採用DB First方法,我們不想刪除或創建表。

有人可以幫我正確配置Session Factory for DB First方法嗎?

+3

刪除行.ExposeConfiguration(...) – Fran

回答

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