1

UnitOfWorkApplicationに基づいてASP.Net MVCアプリケーションを構築しています。私はCastle ATM機能を使用したいと考えています。現時点では、リクエスト終了時にセッションをフラッシュすることに問題があります。 (私のコントローラのアクションメソッドで呼び出された)私のサービスクラスは次のようになります。私は、コメントを解除するとRhino UnitOfWorkApplication + Castle自動トランザクション管理アプリケーションがリクエスト終了時に自動的にフラッシュされない

[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は要求終了時に変更をフラッシュする必要があります。終了AFAIK - そうですか?私はそれを明示的なsession.Flush()呼び出しなしで動作させるために何をしようとすべきですアドバイスを誰も持っていますか?

+0

もし私がATMを適切にセットアップすればいいと思っています - DefaultTransactionManagerは大丈夫ですか?私は、施設AutomaticTransactionManagement.TransactionFacilityとCastle.Services.Transaction.DefaultTransactionManagerを、アプリケーションのIoCコンテナのコンポーネントとして登録します。 – Buthrakaur

答えて

1

城のATM設備+ DefaultTransactionManagerの代わりにRhinoTransactionFacilityを登録しただけで、すべてが機能し始めました。

関連する問題