nHibernate + wcf + Isession

时间:2010-09-08 06:16:08

标签: wcf nhibernate

我有一个包含3个项目的c#解决方案 - 数据,WCF和UI。第一个是与db通信的类库。它是通过第二个暴露的,它是WCF服务库类型 - 原因是它将在第三个项目中公开 - Asp.net应用程序称为UI - 作为一个简单的svc指向dll。

只是指出来,我没有使用Repository模式。

我需要有一个Wess调用的ISession(类似于asp.net的Session-per-request方法)。任何人都可以共享一个简单的解决方案吗我不想使用任何IOC。

2 个答案:

答案 0 :(得分:1)

每次服务调用都与唯一的OperationContext相关联。 OperationContext没有任何自定义对象存储,但您可以实现extension。通过在MessageInspector中设置会话,您可以在集中位置为每个调用启动NHibernate会话,并在任何操作中访问扩展上下文。

答案 1 :(得分:1)

使用WcfOperationSessionContext(3.0中的新功能)。

绑定后,您的数据类只需使用SessionFactory.GetCurrentSession()