Ich konvertiere eine SQL-Funktion in C# mit Entity Framework, und die Funktion, die ich konvertiere verwendet den NOLOCK
Hinweis für jede Tabelle (10 von ihnen) verbunden wird.Entity Framework Joins mit NOLOCK
Aus diesem Grund habe ich beschlossen, IsolationLevel
auf für die gesamte Transaktion festzulegen. Momentan mache ich so interne Joins.
from a in context.table1.ToList()
join b in context.table2.ToList on a.Id equals b.Id
so weiter und so fort
Would erklärt Listen, zum Beispiel
IEnumerable<table1> Table1 = new List<table1>();
und bevölkern sie dann den Kontext verwenden, bevor ich meine Abfrage führen zu unterschiedlichen Ergebnissen in diesen Tabellen beginnen? I.e wäre Table1
das gleiche wie context.table1.ToList()
? Und wenn ja, mit welcher Implementierung sollte ich gehen?
Ich weiß nicht, ob ich es jemals verwenden würde, aber gibt es eine Möglichkeit, es pro Tabelle zu tun? – adam0101
Nein, es würde einige zusätzliche Logik in Ihrem DbContext benötigen, um die Abfrage zu ändern, die an den Server gesendet wird. Sie könnten eine Ansicht mit NOLOCK-Hinweisen erstellen und diese Ansicht einer Entität in IF zuordnen, dann abstrahieren Sie die NOLOCK-Hinweise aus Ihrem C# -Code alle zusammen. – Igor
Ich konvertiere diese für meinen Job, die SPs, die ich bisher konvertiert habe, waren viel einfacher. Mein Instinkt sagt mir, dass ich NOLOCK nicht in Frage stellen soll, da das momentan über meinem Gehaltsniveau liegt. Danke für den Tipp, ToList() loszuwerden. –