使用每个NHibernate操作的事务是为了使用缓存吗?为什么?
答案 0 :(得分:3)
如果您不使用显式交易。大多数数据库将使用隐式事务。这意味着您所做的每个查询都将包装在查询完成时提交的事务中。请参阅此文章:Use Of Implicit Transactions Is Discouraged
因此,将应用程序操作包装在事务中是个好主意,即使他们所做的只是获取数据。特别是因为您的问题是处理缓存,如果您想根据引用的文章使用二级缓存,则需要使用事务。
答案 1 :(得分:0)
在数据库系统中,事务旨在将几个较小的原子操作包装成一个较大的操作。
典型的例子是将钱从一个支票账户转移到另一个支票账户。两个原子操作是:
这两个原子操作包含在一个事务中,这样,如果其中一个操作失败,您可以回滚整个事务,系统将不会处于银行或客户留下的状态。太多或太少的钱,或有钱下落不明。
因此,如果您的操作是简单的原子操作,例如更改表中的单个字段,那么不,我认为您不需要事务处理。