将 NHibernate Session 与数据库同步 - 相反的方式

发布于 2024-08-17 10:53:38 字数 280 浏览 3 评论 0原文

我正在使用 NHibernate 进行项目,而且我绝对是初学者。我正在从表中获取一些对象并将其显示到表单中,可以在其中对其进行编辑。如果用户从其他窗口将新对象插入表中,我想在编辑窗口中显示这个新插入的对象。我的应用程序使用选项卡式窗口界面,因此用户可以同时打开插入窗口和编辑窗口。

所以基本上我需要的是一种方法来确定数据库中是否存在 ISession 之前未获取的新创建的对象,如果不存在,则从数据库中获取该新对象。换句话说,我需要将我的会话与数据库同步,就像flush方法一样,但是以相反的方式。

谁能帮助我吗?

I am using NHibernate for a project, and I am absolutely beginner. I am fetching some objects from a table and showing it to a form, where they can be edited. If an user inserts a new object into the table from some other window, I want to show this newly inserted object into the edit window. My application uses tabbed window interface, so user can simultaneously open insert window and edit window at the same time.

So basically what I need is a way to determine if a newly created object exists in the database which is not fetched before by ISession, and if not, then fetch that new object from the database. In other words, I need to synchronize my session with the database, just like flush method, but in the reverse way.

Can anyone help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟燃烟灭 2024-08-24 10:53:38

发布/订阅方法对此很有效。查看 Ayende 的示例桌面应用程序的发布事件部分。基本上,在添加新项目后,您会发布该信息,并且订阅的应用程序的其他部分可以相应地更新其列表。

Publish/Subscription method works well for this. Check out the Publishing Events part of Ayende's sample desktop application. Basically after you've added a new item, you publish that information and other parts of your application that subscribed can update their lists accordingly.

许仙没带伞 2024-08-24 10:53:38

您正在走上 NHibernate 地狱之路。

在使用 NHibernate 实现它们之前,请务必使用您的基础设施(即定义接口、定义会话管理模式和通知模式)并将这些非业务实用程序与代码的其余部分隔离。

祝你好运。

You are taking the path to NHibernate Hell.

Be sure to work your infrastructure (ie defining interfaces, defining session management patterns and notification pattern) and isolate these non-business utilies from the rest of your code before using NHibernate to implement them.

Good luck.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文