/ / NOLOCK con Linq a SQL sin configurar Transaction IsolationLevel - linq-to-sql, transactioncope

NOLOCK con Linq a SQL sin establecer Transaction IsolationLevel - linq-to-sql, transactionscope

¿Hay una manera de usar NOLOCK en una consulta única LIN2SQL sin configurar el Transaction IsolationLevel? Necesito hacer esto como parte de la consulta de una transacción más grande (distribuida).

Por ejemplo:

using (var txn = new TransactionScope())
{

// query1
// query2
// query3
}

Quiero que los cambios de consulta 1 y 3 seantransaccional, pero necesito NOLOCK en query2, que resulta estar en una base de datos separada a las otras consultas. Si vuelvo a establecer el alcance de la transacción para query2 en ReadUncommitted, obtengo el error:

The transaction specified for TransactionScope has a different IsolationLevel than the value requested for the scope. Parameter name: transactionOptions.IsolationLevel

Respuestas

3 para la respuesta № 1

¿Funcionará para ti?

 using (var txn = new TransactionScope())
{

// query1
using (TransactionScope txn2 =
new TransactionScope(TransactionScopeOption.RequiresNew),
new TransactionOptions() {//isolation level,timeout, etc}
)
{
// query2
}
// query3
}

0 para la respuesta № 2

¿Qué tal hacer de query2 un procedimiento almacenado, con nolock en el sql, y llamar a eso desde Linq2Sql?