gpt4 book ai didi

asp.net-mvc - 'Permanent' SessionFactory、ASP.NET MVC 和 nHibernate

转载 作者:行者123 更新时间:2023-12-04 20:07:02 25 4
gpt4 key购买 nike

我一直在使用 Fluent nHibernate/ASP.NET MVC 构建一个应用程序——我仔细研究并发现最合适的做法是保持“永久”SessionFactory 打开,然后为每个请求使用 session 到数据库。好吧,这听起来不错……

不过,我对如何实现这一点感到很困惑。我发现的所有内容都假定一个完整的结构化框架,该框架使用某种 IoC 容器系统……这对于我目前所拥有的来说太先进了。有没有更简单的例子来说明如何实现这种设计?

我看过Where can I find a good NHibernate and ASP.NET MVC Reference Application

甚至阅读了“ASP.NET MVC in Action”一书,但它的示例比我想要实现的要复杂得多。我认为单例模型可以在“global.asax”的 Application_Start 中运行,但这并没有产生我希望的结果。它会继续处理我的工厂,并且永远不会重新创建它。

最佳答案

您可以将 ISessionFactory 公开为单例:

public sealed class FactoryManager
{
private static readonly ISessionFactory _instance = CreateSessionFactory();

static FactoryManager()
{ }

public static ISessionFactory Instance
{
get { return _instance; }
}

private static ISessionFactory CreateSessionFactory()
{
// TODO: configure fluentnhibernate and create a session factory
}
}

现在您可以在代码中使用 FactoryManager.Instance:

using (var session = FactoryManager.Instance.OpenSession())
using (var tx = session.BeginTransaction())
{
// TODO: use the session here
tx.Commit();
}

关于asp.net-mvc - 'Permanent' SessionFactory、ASP.NET MVC 和 nHibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4337946/

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