我想知道当使用来自Xsockets控制器的NH数据层时,管理NHibernate会话上下文的最佳方法是什么。特别是我指的是自托管的winservice/控制台应用程序或Azure worker角色,在这些角色中,HTTPContext不可用。当然,每次调用都有创建和处理会话的选项,但这意味着性能下降,因此在某种程度上更好地重用会话。我的控制器为底层NH存储库中的CRUD操作提供API,并在DB中更新某些记录时将更新推送给相关的订阅者。
你的想法很受欢迎:)
发布于 2015-08-26 19:28:20
我使用StructureMap来处理依赖项,并创建一个NestedContainer来处理每个请求的会话。不必再用CurrentSessionContext或HttpContext来存储会话了。
http://structuremap.github.io/the-container/nested-containers/
如果在UnitOfWork中使用OWIN,甚至可以创建一个中间件WebAPI。
发布于 2014-08-30 15:06:22
由于XSockets有状态,如果在OnOpen事件中打开连接,则会对数据库不利,因为只要套接字打开,连接就会保持打开状态。最好是只在调用CRUD操作的方法中尽可能简短地使用存储库。
要获得存储库的实例,在这种情况下不应该成为瓶颈。
我很乐意查看您可能拥有的任何代码。
问候乌夫
https://stackoverflow.com/questions/25583302
复制相似问题