Dispose connection first, then dispose TransactionScope, otherwise the connection can't go back to connection pool. Just like create scope first then open the connection.