Приложение Rhino UnitOfWorkApplication + Castle для автоматического управления транзакциями не сбрасывается автоматически при завершении запроса
Я строю приложение 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 ответ
Я только что зарегистрировал RhinoTransactionFacility вместо оригинального банкомата Castle + DefaultTransactionManager и все начало работать.