我有一个事务中执行的读取查询,以便可以指定隔离级别。查询完成后,该怎么办?
- 提交交易
- 回滚交易
- 不执行任何操作(这将导致事务在using块的末尾回滚)
进行每个操作有什么含义?
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?
}
}
编辑:问题不是是否应该使用事务或是否还有其他方法来设置事务级别。问题是,提交或回滚不修改任何内容的事务是否有任何区别。有性能差异吗?它会影响其他连接吗?还有其他区别吗?