NHibernate代理属性访问绑定

时间:2012-12-03 16:12:02

标签: c# nhibernate

是否可以使用nhibernate拦截器为域模型的每个属性绑定到“get value”事件?
我想做的是:
- 拥有我的域模型类和映射(这里没有新内容)
- 使用业务层处理用户请求。该层应使用事务,因此请求的行为如下:requst - >开放会话和交易 - >满足要求 - >提交事务和关闭会话 - >发回结果(如果有的话)
- 用户通过某种GUI与数据交互。当他要求一些延迟加载数据时,不会触发LazyLoadException(或其名称),因为拦截器已注册并且能够拦截延迟加载属性的读取。因此,它会打开一个nhibernate会话,并在执行读取时关闭它。

我希望你明白我的意思。
如果你迫切需要一些代码示例来澄清,即使我真的不知道如何给出一个程序化的想法,我也会尽力提供。
非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

我们的Windows窗体应用程序使用每个表单模式的会话,该模式运行良好。几乎在所有情况下,我们一次只能打开一个会话。

在您的情况下,我会调查使用ISession.Lock将断开连接的对象重新附加到会话以允许延迟加载工作。