2010-03-15 23 views
3

我想創建一種記錄的數據事務,我可以在不同的數據庫上重播。如何從NHibernate保存012查詢sql查詢

例如,我捕獲一個訂單到一個系統,當我保存,我想能夠「導出」一個SQL腳本,我可以在另一個數據庫上運行創建相同的順序。

我正在使用NHibernate,我試圖捕獲保存到文件,但沒有成功保存操作的sql查詢字符串。

回答

1

結帳這個問題:Get executed SQL from nHibernate

我不知道是否有類似的事件監聽器是更好的選擇,如果沒有,IInterceptor方法似乎是最好的。

+0

這是行得通的,但不完全正確,因爲這些值沒有傳遞給攔截器。我認爲最好的方法是創建一個log4net appender並捕獲NHibernate.SQL記錄器的輸出。 – adriaanp

+0

不是一個壞主意,顯然這就是NHprof(NH分析器)獲取所有查詢信息(包括參數)的方式。 順便說一句,你可以嘗試使用NHibernate的兩個數據庫,這裏有一些問題和許多關於該主題的博客文章。 –