我有一个在事务中执行的读取查询,以便指定隔离级别.一旦查询完成,我该怎么办?
- 提交事务
- 回滚事务
- 不执行任何操作(这将导致事务在使用块结束时回滚)
每种方法的含义是什么?
using (IDbConnection connection = ConnectionFactory.CreateConnection())
{
using (IDbTransaction transaction = connection.BeginTransaction(IsolationLevel.ReadUncommitted))
{
using (IDbCommand command = connection.CreateCommand())
{
command.Transaction = transaction;
command.CommandText = "SELECT * FROM SomeTable";
using (IDataReader reader = command.ExecuteReader())
{
// Read the results
}
}
// To commit, or not to commit?
}
}
编辑:问题不在于是否应该使用事务,或者是否有其他方法来设置事务级别.问题是,提交或回滚一个不修改任何内容的事务是否有任何区别.有性能差异吗?它会影响其他连接吗?还有其他区别吗?