“永久”SessionFactory、ASP.NET MVC 和 nHibernate

2024-03-29

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

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

我看过了在哪里可以找到好的 NHibernate 和 ASP.NET MVC 参考应用程序 https://stackoverflow.com/questions/563030/where-can-i-find-a-good-nhibernate-and-asp-net-mvc-reference-application

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


你可以暴露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();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“永久”SessionFactory、ASP.NET MVC 和 nHibernate 的相关文章

随机推荐

  • 无法连接到任何 X 显示器:Google Colab 运行时

    我现在正在研究分类问题 并尝试在线完成所有工作 而无需访问本地计算机 因此 我已将数据添加到驱动器并将驱动器安装在 Colab 上 现在我想注释我的数据并决定使用LabelImg https github com tzutalin labe
  • 在 App Engine 数据存储区中查找重复项

    我的数据存储区中有一些重复的元素 不是整行 而是其中的大部分字段 找到他们的最佳方式是什么 我有重复的整数和字符串字段 以防比较一个比另一个更快 Thanks 一种愚蠢但快速的方法是获取您关心的字段 将它们连接为长字符串并将它们存储为DB
  • 如何将新字体导入项目 - Angular 5

    我想将新字体导入到我的 Angular 5 项目中 我努力了 1 将文件复制到assets fonts 2 将其添加到 angular cli json styles 但我检查过该文件不是 css 它是一个 otf这就像一个 exe 它是一
  • 多人浏览器游戏 [Java]

    我一直在开发一个名为 Tarneeb 的小型纸牌游戏 游戏本身看起来像桥牌游戏 但规则不同 无论如何 我使用 Java 6 作为独立的桌面应用程序完成了整个游戏 这是一个picture http photos g ak fbcdn net
  • python argparse 在描述后打印用法文本

    有没有办法使用 python argparse 在描述文本后打印用法文本 我的命令行 argparse 正在工作 但我想在使用信息之前打印版本信息 Edit version 1 0 usage blahcmd h help some lov
  • 为什么 LocalBroadcastManager 无法在服务中工作?

    我使用了服务 但没有收到任何广播消息 需要快速反应 这是我使用的意图过滤器字符串 public class AppConstant public static final String FILTER com sample hmi REQUE
  • 重叠的极坐标图和散点图

    感谢这非常有帮助post https stackoverflow com questions 9071084 polar contour plot in matplotlib best modern way to do it 我终于弄清楚如
  • 如何监控每个scroll Id的scroll API使用的资源?调用clearScroll Api 时会发生什么

    如何监控每个滚动 ID 的滚动 API 使用的内存资源或搜索上下文 这些搜索上下文存储在哪里 有办法查看或监控它们吗 java api 的参数 keepAlive 意味着什么 public SearchRequest roll TimeVa
  • 嵌套推送动画iOS7 bug?

    我刚刚在经过错误测试的应用程序中遇到了问题 我把头撞到墙上才明白为什么会出现这个错误 2013 11 25 09 02 55 687 186 60b nested push animation can result in corrupted
  • 将原始文件复制到 SD 卡中?

    我的里面有一些音频文件res raw文件夹 由于某些原因 我想将此文件复制到我的 SDCard 当我的应用程序启动时 我怎样才能做到这一点 有人指导我吗 从资源中读取 写入SD卡上的文件 InputStream in getResource
  • Python 异常处理 - 最佳实践

    我正在编写一个访问数据库的 python 程序 我想在发出 http 请求时捕获三种类型的异常 超时 网络错误和 http 错误 我正在寻找处理这种情况的最佳方法 我需要在代码的多个区域多次检查这些异常 每次都会看起来像这样 try som
  • 将 scipy curve_fit 用于可变数量的参数

    我有一个拟合函数 其形式为 def fit func x data a b c N 其中a b c是长度为N的列表 其中的每个条目都是scipy optimize curve fit 中要优化的可变参数 N是用于循环索引控制的固定数字 下列
  • Html.EditorForModel 和隐藏编辑中的元素

    我使用以下代码使用 ASP NET MVC 3 为我的模型呈现编辑器 它工作完美 除了我不希望用户查看或编辑我的对象中的 Id 字段
  • psycopg2 ImportError 的 Django 错误:DLL 加载失败

    您好 当我尝试在虚拟环境中运行syncdb 时 我收到此错误 如果我将 psycopg2 文件夹复制到我的项目文件夹 其中我有manage py and settings py 然后这个错误就消失了 但是当代码推送到heroku时我仍然遇到
  • 导航栏下拉菜单不适用于移动设备

    我在 Bootstrap 3 中遇到了导航栏问题 我的菜单项之一是下拉菜单 它在我的笔记本电脑上运行良好 但在我的 Android 手机上不起作用 具体来说 当按下手机上的下拉菜单项时 没有任何反应 我已经在谷歌 这个网站和其他几个网站上搜
  • 排除子项目提交 Git

    我怎样才能排除Subproject commit 我在子模块中没有更改任何内容 仅从远程存储库中提取更改 我认为在创建子模块时 我在主存储库中提交了一些不需要的东西 有任何想法吗 1 当我创建子模块时git diff在主存储库中还显示 su
  • 如何完成删除文件流和所有附加文件

    我已经在本地数据库上尝试了 MSSQL 2008R2 数据中心 的 FILESTREAM 功能来进行实验 真正的数据库运行在服务器上 我已经使用以下查询设置了整个 FILESTREAM CREATE FILESTREAM AND FILES
  • 在闪亮的仪表板中永久更改标题标题颜色

    我有下面闪亮的仪表板 我需要永久更改包含标题的标题的颜色 现在 当我将鼠标悬停在其上时 它会返回到之前的颜色 library DT ui lt dashboardPage dashboardHeader title Dynamic side
  • Android 6.0 上的 Android 文件权限

    我想列出下面的文件和目录 proc 在安卓中 当作为我的应用程序进程运行时 许多文件不可读 如果我将目录列为shell用户我得到以下输出 shell flounder whoami shell shell flounder system b
  • “永久”SessionFactory、ASP.NET MVC 和 nHibernate

    我一直在使用 Fluent nHibernate ASP NET MVC 构建一个应用程序 我已经深入研究并发现保持 永久 SessionFactory 打开 然后对数据库的每个请求使用会话被认为是最合适的做法 好吧 这听起来不错 不过 我