Je construis l'application ASP.Net MVC basée sur UnitOfWorkApplication et j'aimerais utiliser l'installation ATM de Castle. Pour le moment j'ai un problème avec la vidange de la session à la fin de la requête. Ma classe de service (qui est appelé dans ma méthode d'action du contrôleur) ressemble à ceci:L'application de gestion automatique des transactions de Rhino UnitOfWorkApplication + Castle ne se vide pas automatiquement à la fin de la requête
[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;
}
Quand je décommenter le « UnitOfWork.CurrentSession.Flush(); » row tout fonctionne bien - un nouvel utilisateur est conservé dans DB. Mais rien n'est persistant si je ne vide pas la session explicitement. L'unité UnitOfWorkApplication + ATM doit vider les modifications à la fin de la requête AFAIK - est-ce exact?
Est-ce que quelqu'un a un conseil que dois-je essayer de le faire fonctionner sans l'appel de session.Flush() explicite?
Je ne fais que penser à la configuration correcte de l'ATM - DefaultTransactionManager est-il correct? J'inscris la facilité AutomaticTransactionManagement.TransactionFacility et que Castle.Services.Transaction.DefaultTransactionManager en tant que composant dans le conteneur IoC de mon application. – Buthrakaur