Transaktionen mit subsonic verwenden

7

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?

    
TheVillageIdiot 26.05.2009, 14:03
quelle

3 Antworten

10

Etwas wie:

%Vor%     
kevinw 26.05.2009, 14:42
quelle
14

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%     
TheVillageIdiot 23.05.2017 12:34
quelle
1

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.

    
Apocatastasis 13.01.2014 10:27
quelle