首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >城堡ActiveRecord + NHibernate中用于虚拟人的事务

城堡ActiveRecord + NHibernate中用于虚拟人的事务
EN

Stack Overflow用户
提问于 2010-01-23 11:39:29
回答 2查看 1.1K关注 0票数 0

我想在一个原子事务中完成以下操作:

  1. 通过ActiveRecord读取对象
  2. 通过ActiveRecord保存新对象
  3. 通过NHibernate更新另一个表

另外,如果在我完成事务时,我在步骤1中读取的对象的值发生了变化,我希望事务失败。

我以前从未在AR或NH中使用过交易,所以请提供尽可能多的详细信息。事务机制是如何协同工作的?

EN

回答 2

Stack Overflow用户

发布于 2010-02-05 00:27:17

卡塞尔ActiveRecord依赖于NHibernate。诚然,类与在ActiveRecord上找到的类不一样;但是您应该将ActiveRecord类看作是NHibernate中的包装器。

所以没有必要“一起玩”。因为,在内心深处,他们是一样的。

另一个重要的概念是“会议”。“会话”是一个工作单元,一个用来告诉NHibernate您想要做什么的“窗口”:查询、更新、插入等等。同样,还有一个NHibernate会话,还有一个ActiveRecord会话。同样,后者是第一个包装器。

这一点很重要,因为当您在ActiveRecord中使用会话时(实际上您总是这样做,即使是隐式的),可以访问其中的“隐藏”NHibernate会话;通常使用传递给Execute方法的委托。这就是在应用程序中使用这两种代码样式的方法(参见在这里执行回调示例)。

为了更好地理解会话意义,请看这里

最后,我建议您始终使用ActiveRecord的样式来声明会话和事务,即使在混合这两种编码样式时也是如此。因为它们也代表NHibernate会话和事务,所以您是安全的。为了更好地理解这一点,请在这里读

PS:是的,我没有写你想要的例子(太懒了),但是我认为如果你写的话,对你的学习过程会更好。相信我,这比你想象的要容易。

票数 3
EN

Stack Overflow用户

发布于 2011-05-04 17:53:26

下面是一个新项目的快速开始(在最后几周创建)

https://github.com/haf/Castle.Facilities.NHibernate/wiki/NHibernate-Facility---Quick-Start

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2122998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档