我使用了NHibernate 2.1.2,FluentNhibernate 1.1和配置In Memory的SQLite(用于单元测试)。
拦截器的目的是使创建条件返回代理对象。我想我已经正确地在配置中注册了拦截器,但是创建条件只返回裸对象而不是代理对象。我试图在拦截器Instantiate方法上设置一个断点,但断点没有被击中。
所以我的问题是,我怎么知道我的拦截器是否已正确设置?我可以使用日志调试吗?
我在Visual Studio单元测试中使用配置时遇到问题。
答案 0 :(得分: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。