gpt4 book ai didi

asp.net-mvc - NHibernate,依赖注入(inject)。正确关闭 ISession

转载 作者:行者123 更新时间:2023-12-04 06:32:33 25 4
gpt4 key购买 nike

我正在使用 Ninject、NHibernate、ASP.NET MVC3 和存储库模式。 Ninject 中的模块绑定(bind)如下。

Bind<ISessionFactory>().ToProvider(new SessionFactoryProvider()).InSingletonScope();
Bind<ISession>().ToMethod(context => context.Kernel.Get<ISessionFactory>().OpenSession()).InRequestScope();

问题是存储库应该采用 ISession 还是 ISessionFactory。如果它需要一个 ISessionFactory 那么在存储库中我可以在必要时打开一个 session 并在使用后关闭它。如果它需要一个 ISession,则存储库直接使用它。但我想知道 session 是否正确关闭。

最佳答案

因此,您的 session 配置为按请求。这意味着,它在请求开始时打开,并在最后由容器关闭。这可能是个好主意。如果您尝试手动重新打开(或关闭) session ,我想它会抛出异常。只需将 ISession 注入(inject)存储库即可。

关于asp.net-mvc - NHibernate,依赖注入(inject)。正确关闭 ISession,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5221620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com