ich eine gespeicherte Prozedur haben, die einige Zeit (~ 60 Sekunden), die ich EF wie mit diesem Aufruf auszuführen nimmt:Aufruf gespeicherte Prozedur von Entity Framework 6 abnormales Verhalten
context.Database.ExecuteSqlCommand(
"myStoredProcedure @param1",
new SqlParameter("param1", param1)
);
Die gespeicherte Prozedur besteht aus zwei Teilen :
eine neue Zeile in Tabelle
tblSomeTable
Einfügen und danacheinige Informationen aus mehreren Tabellen Berechnung, dass nicht enthalten
tblSomeTable
.
Die zweite Operation ist die zeitaufwendige. Wenn ich diese gespeicherte Prozedur aus SSMS ausführe, kann ich sehen, dass eine neue Zeile zu hinzugefügt wird, bevor die Prozedur beendet, die ein normales Verhalten ist, aber wenn ich die gleiche genaue Prozedur unter Verwendung des obigen Codes dann eine neue Zeile ausführen tblSomeTable
wird nur hinzugefügt, wenn der Vorgang abgeschlossen ist.
Auch während das Verfahren läuft, kann ich nicht tblSomeTable
überhaupt (beide von EF und SSMS) abfragen, von dem, was ich davon aus, dass es eine Sperre auf tblSomeTable
, bis der Vorgang beendet platziert ist. Warum passiert dies?
Dies ist auf SQL Server 2008.
Funktioniert Ihr ExecuteSqlCommand erfolgreich? Sie möchten nur wissen, was Sie während der Ausführung des Befehls in tblSomeTable sehen können? Recht? – CodeNotFound
Ja, tut es, und ja, ich möchte nur die Zeile in der TblSomeTable sehen. (bevor der Vorgang abgeschlossen ist) – astralmaster