Frage

Ich entschied mich für ein system für einen Kunden verwenden Castle ActiveRecord, alles ging gut, bis ich festgestellt, dass die Transaktionen nicht funktionieren, zum Beispiel;

               TransactionScope t = new TransactionScope();

               try
               {
                   member.Save();

                   //This is just to see transaction working
                   throw new Exception("Exception");  

                   foreach (qfh.Beneficiary b1 in l)
                   {
                       b1.Create();
                   }


               }
               catch (Exception ex)
               {

                   t.VoteRollBack();
                   MessageBox.Show(ex.Message);
               }
               finally
               {
                   t.Dispose();
               }

Aber es funktioniert nicht, habe ich eine Ausnahme werfen, nur um zu versuchen, die Transaktion ein Rollback ausgeführt, aber meiner überraschung ich sehen, dass die ersten [Speichern] Datensätze in der Datenbank.Was ist passiert?

Ich bin neu auf dem Schloss und NHibernate, Erstens, ich sah es sehr attraktiv und ich beschlossen zu gehen mit es und MySQL (ich habe noch nie gearbeitet, mit dieser DB), habe ich versucht ActiveWriter und es schien sehr vielversprechend, aber nach einem langen und effortly Woche sehe ich dieses Thema und jetzt fühle ich mich wie ich bin stecken und wie habe ich meine Zeit verschwendet.Es soll einfach sein, aber jetzt bin ich Gefühl, ein frustated cause ich kann nicht genug Informationen finden, um mit diesem Training können Sie mir helfen?

War es hilfreich?

Lösung

Ben ' s got it.Das doc ist ein wenig verwirrend.Beziehen sich auf die letzten block auf der Seite, "Geschachtelte Transaktionen".

Andere Tipps

Sie müssen wickeln Sie den code in einer Sitzung Umfang, wie diese:

using(new SessionScope())
{
   a.Save();
   b.Save();
   c.Save();
}

Lesen Sie mehr hier.

Ich habe endlich Feste, es passiert, dass ich was falsch mache, ich überschrieb die Save-Methode der Mitglied-Klasse und machte sessionScope innen und drinnen eine Transaktion Umfang, so dass, wenn einem beteiligten alle, die in einem Transaktionsbereich es in der Datenbank gespeichert, so dass, wenn ich die Ausnahme ausgelöst wurde alles schon gerettet, ich denke, das ist es.

Alle in alle, Dank für die Hilfe.

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