1

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();」のコメントを外すと 行すべてが正常に機能します-新しいユーザーはDBに永続化されます。ただし、セッションを明示的にフラッシュしないと、何も保持されません。

UnitOfWorkApplication + ATM は、リクエスト終了時に変更をフラッシュする必要があります-そうですか? 明示的な session.Flush() 呼び出しなしで機能させるにはどうすればよいか、アドバイスはありますか?

4

1 に答える 1

1

元の Castle ATM 機能 + DefaultTransactionManager の代わりに RhinoTransactionFacility を登録したところ、すべてが機能し始めました。

于 2009-03-26T11:31:16.553 に答える