In meiner Webanwendung muss ich die Benutzeraktionen überwachen. Wenn der Benutzer eine Aktion ausführt, aktualisiere ich das Objekt, auf dem die Aktion ausgeführt wird, und behalte den Audit-Trail dieser Aktion bei.
Wenn ich zuerst das Objekt ändere und dann den Audit-Trail aktualisiere, aber der Audit-Trail versagt, was dann?
Offensichtlich muss ich Änderungen an modifiziertem Objekt zurücksetzen. Ich kann Sql-Transaktionen in einfacher Anwendung verwenden, aber ich benutze Subsonic, um mit db zu sprechen. Wie kann ich mit der Situation umgehen?
Die Antwort von @Kevinw ist vollkommen in Ordnung. Ich poste dies nur als Übersetzung seiner Antwort auf C # -Code. Ich verwende keine Kommentare, da der Code nicht formatiert wird :) Außerdem verwende ich try / catch, um zu wissen, ob die Transaktion abgeschlossen oder zurückgesetzt werden soll.
%Vor% Nein. Wenn ich das SharedDbConnectionScope
außerhalb der Änderungen setze, sind die sichtbaren Daten in der Datenbank vor ts.Complete()
. Wenn Sie es hineinstecken, wird der Server blockiert, bis die Operation abgeschlossen ist.
Tags und Links c# asp.net web-applications transactions subsonic