显然我在这个帖子中确实错了
Should I always use transactions in nhibernate (even for simple reads and writes)?
如何在没有事务的情况下从读取中获得不一致的结果?
编辑 - 原始问题是在nhibernate的上下文中。这个nhibernate具体吗?
答案 0 :(得分:1)
不,它不是特定于休眠的。
简短回答:交易是“原子工作单位”,具有一致的世界观。一旦事务被保留,受保护的“视图”需要用世界的视图(COMMITTTED)来纠正 - 或者,在只读事务的情况下,一致的视图可以简单地被解除(它只需要是在交易期间保持一致。)
更长的答案:有许多不同类型的交易(READ UNCOMMITTED,READ COMMITTED,SERIALIZABLE,REPEATABLE READ等)会影响细节。
请参阅Wiki: Database Transaction和Isolation (DBMS) - 后者需要点击几次链接才能找到: - )
想象一下这个快速设计的序列,A和B代表使用数据库的不同参与者,每个动作都在它自己的一次性隐式事务中运行(并且没有别的):
请参阅隔离维基文章的“示例查询”部分。