我正在构建基于 UnitOfWorkApplication 的 ASP.Net MVC 应用程序,并且我想使用 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() 调用的情况下尝试使其工作?