我想在一个原子事务中完成以下操作:
另外,如果在我完成事务时,我在步骤1中读取的对象的值发生了变化,我希望事务失败。
我以前从未在AR或NH中使用过交易,所以请提供尽可能多的详细信息。事务机制是如何协同工作的?
发布于 2010-02-05 00:27:17
卡塞尔ActiveRecord依赖于NHibernate。诚然,类与在ActiveRecord上找到的类不一样;但是您应该将ActiveRecord类看作是NHibernate中的包装器。
所以没有必要“一起玩”。因为,在内心深处,他们是一样的。
另一个重要的概念是“会议”。“会话”是一个工作单元,一个用来告诉NHibernate您想要做什么的“窗口”:查询、更新、插入等等。同样,还有一个NHibernate会话,还有一个ActiveRecord会话。同样,后者是第一个包装器。
这一点很重要,因为当您在ActiveRecord中使用会话时(实际上您总是这样做,即使是隐式的),可以访问其中的“隐藏”NHibernate会话;通常使用传递给Execute方法的委托。这就是在应用程序中使用这两种代码样式的方法(参见在这里执行回调示例)。
为了更好地理解会话意义,请看这里。
最后,我建议您始终使用ActiveRecord的样式来声明会话和事务,即使在混合这两种编码样式时也是如此。因为它们也代表NHibernate会话和事务,所以您是安全的。为了更好地理解这一点,请在这里读。
PS:是的,我没有写你想要的例子(太懒了),但是我认为如果你写的话,对你的学习过程会更好。相信我,这比你想象的要容易。
发布于 2011-05-04 17:53:26
https://stackoverflow.com/questions/2122998
复制相似问题