1

Ich baue ASP.Net MVC Anwendung basierend auf UnitOfWorkApplication und ich möchte Castle ATM-Anlage verwenden. Im Moment habe ich Probleme mit dem Löschen der Sitzung auf Anfrage. Meine Service-Klasse (die in meinem Controller-Aktion-Methode aufgerufen wird) sieht wie folgt aus:Rhino UnitOfWorkApplication + Castle Automatische Transaktionsverwaltung Anwendung wird nicht automatisch auf Anfrage Ende

[Transactional] 
public class UserAdminService : IUserAdminService 
{ 

    [Transaction(TransactionMode.Requires)] 
    public User CreateNewUser(string username, string password, string firstName, string lastName) 
    { 
     var u = new User(username) 
        { 
         PasswordHash = GetPasswordHash(password), 
         FirstName = firstName, 
         LastName = lastName 
        }; 
     userRepo.Save(u); 
     //UnitOfWork.CurrentSession.Flush(); 
     return u; 
    } 

Als ich die Kommentar- "UnitOfWork.CurrentSession.Flush();" row alles funktioniert gut - neuer Benutzer ist in DB gespeichert. Aber nichts bleibt bestehen, wenn ich die Sitzung nicht explizit lösche.

Die UnitOfWorkApplication + ATM sollte Änderungen auf Anfrage Ende AFAIK flush - ist das richtig? Hat jemand einen Ratschlag, was ich versuchen sollte, um es ohne die explizite Sitzung funktionieren zu lassen.Flush() Anruf?

+0

Ich denke nur, wenn ich den ATM ordnungsgemäß einrichten - ist DefaultTransactionManager ok? Ich registriere die Einrichtung AutomaticTransactionManagement.TransactionFacility und dann Castle.Services.Transaction.DefaultTransactionManager als eine Komponente im IoC-Container meiner App. – Buthrakaur

Antwort

1

Ich habe nur RhinoTransactionFacility anstelle der ursprünglichen Castle ATM-Einrichtung + DefaultTransactionManager registriert und alles hat zu arbeiten begonnen.

Verwandte Themen