Wie Verwenden von WITH (NOLOCK) in LINQ to SQL?

Wir können SQL einfach so verwenden:

SELECT * FROM student WITH(NOLOCK); 

Wie kann ich dies mit LINQ to SQL ohne die Verwendung eines TransactionScope ?

Related of "Wie Verwenden von WITH (NOLOCK) in LINQ to SQL?"

LINQ to SQL hat hierfür keinen Mechanismus, Sie können jedoch eine Transaktion mit einer bestimmten Isolationsstufe erstellen. Sehen Sie sich den folgenden Code an:

 using (var con = new SqlConnection("constr")) { con.Open(); using (var transaction = con.BeginTransaction( IsolationLevel.ReadUncommitted)) { using (var context = new SchoolDataContext(con)) { // HACK: Setting the context.Transaction is // needed in .NET 3.5 (fixed in .NET 4.0). context.Transaction = transaction; var q = from s in context.Students select c; } } } 

Manchmal ist die Verwendung dieser Art der Isolierung nützlich, z. B. aus performancesgründen. Stellen Sie jedoch sicher, dass Sie keine CUD-Operationen (CUD) erstellen, aktualisieren oder löschen, die diese Art der databaseisolierung verwenden. Es hängt natürlich von Ihren Situationen ab, aber Ihre data könnten in einen inkonsistenten Zustand geraten.