Я создаю приложение 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 ()?