问题标签 [isession]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nhibernate - NHibernate 不持久化集合
我对 NHibernate 有一个相当奇怪的错误。我在跨线程共享 ISession 时遇到错误,并通过提供我自己的 ADO.NET 连接解决了这个问题,例如:
我的应用程序现在可以工作,但是所有带有集合的对象都被保存在数据库中,没有它们的集合。例如,假设一辆车有一个轮胎列表。然后我创建一辆车,然后根据数据库中已有的轮胎生成轮胎列表。保存汽车对象只会保存汽车而不是列表!
对我做错了什么有任何帮助吗?我正在使用 NHibernate 2.0,我确实调用了 Session.Flush() 和 Transaction.Commit()。
干杯。
nhibernate - 从 NHibernate 二级缓存中删除对象
我刚开始考虑在我的一个应用程序中使用 NHibernate 二级缓存。我可能会使用NHibernate.Caches.SysCache.SysCacheProvider
依赖于 ASP.net 缓存的。
启用缓存不是问题,但我想知道如何管理缓存,例如以编程方式从缓存中删除某些实体等。
我的应用程序是某种图像数据库。用户通过后端上传图像,并可以通过访问在前端查看它/ImageDb/Show?userId=someUserId
数据不会经常变化。如果它发生变化,用户不会关心后端中名为“清除我的缓存”的按钮,该按钮会从缓存中删除该用户的缓存对象。
我在网上找到了一个解决方案,可以从 nhibernates 二级缓存中删除所有缓存的对象。但这对我来说有点太暴力了......我不想仅仅因为一个用户试图清除他自己的数据的缓存,就清除数十个用户的整个缓存。
所以我基本上想做的是:有选择地从 C# 中的 nhibernates 二级缓存中删除缓存的 db 对象。
这可能吗?我想这也取决于缓存提供程序。如果这对 ASP.net 缓存提供程序不可行,我愿意接受其他内置/开源建议。
asp.net - Nhibernate in asp,net ISession 帮助
我们在和 asp.net MVC 应用程序中使用 nhibernate。
我们正在通过 httpModule 实现 Session per Request 模式。
它看起来很简单,但是当我们使用 NHibernate Profiler 运行时,它清楚地表明会话永远不会关闭。
模式似乎很简单......但我不明白为什么会议永远不会结束。
这是我认为很重要的代码。
设置事件处理程序:
在处理程序中处理会话
谁能指出我正确的方向?我应该看什么,模式没有正确实施吗?
我很困惑
谢谢!
电子-
asp.net - Nhibernate 会话和 ASP.NET
使用 NhibernateProfiler 我们已经确定我们正在为每个 http 请求创建一个 ISession。但是 ISessions 永远不会关闭。我们可以在 log 中看到 localSession.Close() 触发的位置。我们的配置文件中有什么东西会导致会话永远不会关闭吗?是否还有其他原因 localSession.Close() 不会物理关闭会话?我们在 NHibernate 的 2.1 上。
感谢您抽时间阅读。
asp.net-mvc - 如何在 ASP.NET MVC 应用程序中处理 NHibernate ISession
我在我的 asp.net mvc 应用程序中连接了 NHibernate。
一切正常,如果我不处置 ISession。但是,我已经读过您应该处理,但是当我这样做时,我会随机出现“会话已关闭”异常。
我正在使用 Windsor 将 ISession 注入到我的其他对象中。
这是我目前的NHModule:
注册 ISession:
当我在模块中的 unbind 上添加 Dispose 时会发生错误。由于我不断收到会话已关闭错误,我认为这不是正确的方法,那么正确的方法是什么?
谢谢,乔
nhibernate - 如何获取由 StructureMap HttpContextScoped 的 NHibernate ISession
我对 MVC 框架有些陌生,并且根据以下帖子: NHibernate with StructureMap我不确定如何在我的控制器中实际获取 HttpContextScoped ISession?
我确信有一种简单的方法可以做到这一点,但我不确定。
此外,这是一个小项目,我不想过度使用企业设计模式。
谢谢!
.net - 服务层:每个应用程序或每个视图模型 1 个实例?(或者:给每个视图模型自己的数据上下文)
我正在使用三层构建 C#/.Net 3.5 应用程序:UI(视图/视图模型)、服务和数据访问/持久性。
服务层:每个服务层实例都与一个唯一的持久性实例相关联。服务层通过接口引用持久层。
持久层:目前,持久层接口有一个使用(Fluent)NHibernate 的具体实现。所有持久层实例共享同一个 ISessionFactory。每个持久性实例都使用该工厂打开自己的 ISession。
目标:按照Ayende Rahien的建议,让每个视图模型在自己的数据上下文(又名 ISession)中运行。为了实现这一点,我的应用程序为每个 VM 提供了自己的服务层实例(反过来,它有自己的持久层实例)。对我来说,拥有这么多同一个服务层类的实例闻起来很可疑。
问题:这是一个好方法吗?离开每个 VM 一个服务实例并转移到每个应用程序一个服务实例会更好吗?如果是这样,我将如何做到这一点并仍然为每个 VM 提供自己的数据上下文?
谢谢你,
本
nhibernate - 为每个 ViewModel 创建一个 ISession 实例
这是我的问题:我正在使用以下工具构建桌面应用程序:
- 卡利本
- 忍者
- 休眠
我所有的视图模型和存储库都是用 Ninject 实例化的。我的存储库都需要在其构造函数中使用 ISession。
我想听从ayende关于 ViewModel 的建议:每个 ViewModel 都会打开一个新会话。
是否可以将 Ninject 配置为在创建 ViewModel 时打开一个新会话,并在此视图模型使用的存储库中使用此会话?
我查看了 Ninject 的 InScope 函数,以及 NHibernate 中的 ICurrentSessionContext 接口,但我不知道如何对所有这些进行建模以获得我想要的......
以前有人做过类似的东西吗?
提前致谢
麦克风
asp.net - 如何使用依赖注入将工作单元容器传递到存储库的构造函数中
我正在尝试解决如何在 ASP.NET Web 应用程序中完成存储库模式的实现。
目前,我为每个域类定义了一个存储库接口,用于定义例如加载和保存该类的实例的方法。
每个存储库接口都由一个执行 NHibernate 内容的类实现。Castle Windsor根据web.config将类的DI整理到界面中。下面提供了一个已实现类的示例:
正如在前一个线程中所指出的,存储库类需要接受一个工作单元容器(即 ISession),而不是在每个方法中实例化它。
我预计工作单元容器将在需要时由每个 aspx 页面创建(例如,在属性中)。
然后,当 Windsor 为我创建这个工作单元容器实例时,如何指定将其传递到 StoredWillRepository 的构造函数中?
还是这种模式完全错误?
再次感谢您的建议。
大卫
nhibernate - 每个请求的 ISession(仅在必要时)
我正在开发一个应用程序(asp.net mvc),并且我在每个请求中使用 ISession(在 globa.asax 中,我在 Begin_Request 事件和 End_Request 事件中使用 Bind 和 Unbind)。一切正常,但有时(某些请求)我不需要使用 ISession(与数据库的连接)。
我想知道是否有任何方法仅在我需要时打开 ISession 并在所有进程请求中创建 ISession 条目(与所有存储库和唯一的事务上下文共享)?
我正在开发和便士拍卖网站,我的服务器每秒会有很多请求,有时我不需要连接,我会使用缓存。
谢谢
干杯