J'utilise l'instruction de sélection LINQ enveloppée dans un TransactionScope (pour changer le verrouillage) mais selon SQL Profiler, cela ne semble pas fonctionner. Mon code ressemble:LINQ et TranscationScope ne fonctionnent pas
using (var ts = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadUncommitted}))
{
using (myDBDataContext dbPKC = new myDBDataContext(conn))
{
...query...
ts.Complete();
return xmlMachine;
}
}
Maintenant, j'attendre SQL Profiler pour montrer BatchStarting et BatchComplete pour mon instruction select. Mais cela montre RPC: Terminé. Pourquoi? quand je cours ce code:
using (SqlConnection conn1 = new SqlConnection())
{
conn1.ConnectionString = WebConfigurationManager.ConnectionStrings["myConnectionString"].ToString(); ;
conn1.Open();
using (SqlTransaction trans1 = conn1.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted))
{
SqlCommand cmd = new SqlCommand("select * from Machines where pkID = 5");
cmd.Connection = conn1;
cmd.Transaction = trans1;
SqlDataReader reader = cmd.ExecuteReader(); // just execute something
}
}
Il montre BatchStarting et BatchComplete. Pourquoi LINQ ne semble-t-il pas "voir" le TransactionScope?
Existe-t-il un moyen de confirmer que mon niveau d'isolation est correct avec Profiler? Je ne peux voir que le niveau d'isolement de la connexion initiale via Audit Login. Aucune "mise à jour" n'est affichée pour montrer qu'elle a été modifiée ou ce que chaque niveau d'isolation utilise pour chaque requête.
Toute aide serait formidable!
En outre, ce code est en cours d'exécution dans un WCF (3.5) Service connexion à SQL Server 2008
Pourquoi utilisez-vous l'étendue de la transaction pour interroger? – garik
Rechercher SET TRANSACTION ISOLATION LEVEL – garik
J'utilise transactionscope pour changer le type de verrouillage. Je fais l'equiv à nolock sélectionnez l'instruction. J'utilise linq parce que je suis en train de faire une instruction select et de la masser en xml dans la même ligne. (XElement) – BabelFish