Приложение Rhino UnitOfWorkApplication + Castle для автоматического управления транзакциями не сбрасывается автоматически при завершении запроса - PullRequest
1 голос
/ 26 марта 2009

Я создаю приложение ASP.Net MVC на основе UnitOfWorkApplication, и я хотел бы использовать средство Castle ATM. На данный момент у меня проблема с очисткой сессии по запросу. Мой класс обслуживания (который вызывается в моем методе действия контроллера) выглядит так:

[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;
    }

Когда я раскомментирую "UnitOfWork.CurrentSession.Flush ();" строка все работает нормально - новый пользователь сохраняется в БД. Но ничего не сохраняется, если я не очищаю сеанс явно.

UnitOfWorkApplication + ATM должен сбрасывать изменения по запросу AFAIK - это правильно? Кто-нибудь есть совет, что я должен пытаться заставить его работать без явного вызова session.Flush ()?

1 Ответ

1 голос
/ 26 марта 2009

Я только что зарегистрировал RhinoTransactionFacility вместо оригинального банкомата Castle + DefaultTransactionManager и все начало работать.

...