Frage

Jemand hier gefragt:

"Linq to SQL- ermöglicht SPs aufrufen. Wenn dieser SP ein Insert update / delete / ausführt, muss ich SubmitChanges (), nachdem es?"

Und die Antwort war:

„Nein, Sie nicht. Der Code funktioniert. Änderungen Senden ist nur mit modifizierten LINQ to SQL betroffenen Objekte und nicht Procs gespeichert.“

Ich möchte nur klarstellen:

(Bitte entschuldigen Sie mich, ich bin relativ neu in LINQ)

Ja, aber nicht eine gespeicherte Prozedur Bypass das Datacontext-Objekt und ändern Sie die Datenbank selbst? (Während Linq sich nur auf das Objekt Datacontext, bis die datacontext.submitchanges Methode aufgerufen wird, wo es modifiziert dann die Datenbank)

Kann ich eine gespeicherte Prozedur irgendwie mein Datacontext-Objekt ändern? Ist es dies bereits tun?

Kann ich es so, dass

  • wenn ich einen SP mit Linq nennen (und ich gehe davon aus, dass es direkt auf die Datenbank modifiziert),
  • dann Linq verwenden, um mein Datacontext-Objekt zu ändern, und senden Sie die Änderungen, die ich an mein Datacontext-Objekt gemacht,

die beiden verschiedenen Änderungen I (One mit der SP, der andere mit Linq zu meinem Datacontext) gemacht wird nicht einmischen?

Was ich wirklich will, ist eine Möglichkeit, meine gespeicherten Prozeduren haben meine Datacontext ändern. Ist das möglich?

Ich sollte erwähnen, dass ich eine Website von SQL in LINQ bin Umwandlung, die Verfahren in erster Linie gespeichert hat und versucht, meine Kämpfe zu holen, mit denen gespeicherte Prozeduren zu LINQ konvertieren und die in SQL zu halten und nur SP Anrufe, um sie mit LINQ.

Vielen Dank für Ihre Hilfe, -Jeff

War es hilfreich?

Lösung

FWIW, unsere Lackmustest ist jede trivial ‚crud‘ Typ PROC die Einsätze / aktualisiert einen einzelnen Datensatz zu einem ORM bewegen sich über können

Allerdings neigen wir die erweiterte Procs (Batch-Updates oder hoch Leistung empfindlich sind) zu verlassen, ‚wie‘.

Aber ja, müssen Sie genannt SubmitChanges haben (), bevor ein Proc aufrufen, die über den Stand der Daten abhängt in der Datacontext geändert

Möglicherweise nicht verwandt, wenn Sie brauchen, um Steuereinheiten der Arbeit, Blick auf TransactionScopes um Ihren Code setzen?

Andere Tipps

Wenn Sie Datensätze über gespeicherte Prozedur aktualisieren, Ihre geladen (und nachverfolgt) Objekte können veralten. Wenn Sie SubmitChanges mit veralteten Objekte aufrufen, werden Sie Gleichzeitigkeit Ausnahmen erhalten. Sie können ein veraltetes Objekt aktualisieren Sie die Refresh Methode auf DataContext verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top