XSockets.Net - 如何管理NHibernate会话上下文

时间:2014-08-30 14:16:19

标签: nhibernate xsockets.net

我想知道管理NHibernate Session Context的最佳方法是什么 从Xsockets控制器使用NH数据层时。 特别是我指的是自托管的winservice / console应用程序或Azure worker角色, HTTPContext不可用的地方。 当然,每个调用总是有一个创建和处理会话的选项,但这意味着性能受到影响,因此以某种方式更好地重用会话。 我的控制器为底层NH存储库中的CRUD操作提供API,并在DB中更新某些记录时向相关订户推送更新。

您的想法受到赞赏:)

2 个答案:

答案 0 :(得分:0)

如果在OnOpen事件中打开连接,XSockets的状态将对您的数据库不利,因为只要套接字打开,连接将保持打开状态。最好是仅在调用CRUD操作的方法中使用存储库。

在这种情况下,获取存储库的实例不应该成为瓶颈。

我很乐意审核您可能拥有的任何代码。

此致 Uffe

答案 1 :(得分:0)

我正在使用StructureMap来处理依赖项并创建一个NestedContainer来处理每个请求的会话。不必为了存储会话而混淆CurrentSessionContext或HttpContext。

http://structuremap.github.io/the-container/nested-containers/

如果您正在使用带有WebAPI的OWIN,您甚至可以创建一个中间件UnitOfWork。