2010-08-25 62 views
3

我使用NHibernate 2.1.2,FluentNhibernate 1.1和SQLite配置內存(爲單元測試目的)。爲什麼不是Nhibernate攔截器調用?

攔截器的目的是使創建標準返回代理對象。我認爲我已經正確地將攔截器註冊到了配置中,但是創建條件只返回裸體對象而不是代理對象。我試圖在攔截器實例化方法上放置一個斷點,但斷點未被命中。

所以我的問題是,我怎麼知道我的攔截器是否已經正確設置?我可以使用日誌進行調試嗎

我在使用Visual Studio單元測試中的配置時遇到問題。

+0

您是否使用了斷點+調試模式來查看攔截器是否被調用? – 2010-08-25 15:05:00

+0

是的,我有,但過程不會停在那裏。 – bonjorno 2010-08-25 16:21:01

回答

2

好的,我花了12小時,因爲小問題。

攔截器沒有爲ISession.Get

在這裏工作是我一直誤以爲

public UserModel Save(UserModel user) 
{ 
    UserModel result = null; 
    using (ITransaction transaction = session.BeginTransaction()) 
    { 
     var id = session.Save(user); 
     //here i expect a proxied UserModel will returned 
     result = session.Get<UserModel>(id); 
     transaction.Commit(); 
    } 
    return result; 
} 

我意識到,我的攔截器工作正常後,我決定就這麼走了,並開始編寫單元測試使用Criteria API的GetUsers方法。如果你對NHibernate攔截器感興趣,我發現它here