2011-08-15 5 views
0

배경. 오류가 발생하는 시나리오에서 간단한 메시지를 사용자에게 반환하고 트랜잭션을 롤백하고 싶습니다. context.Hrror 이벤트를 사용하면 예외가 쉽게 롤백 될 수 있지만 예외가 catch되어 사용자에게 친숙한 메시지를 표시하므로 호출되지 않습니다.NHibernate에 3, HttpModule의 및 오류

위의 문제로 인해 사용자 지정 작업 단위 시나리오를 만들고이를 요청의 HTTP 컨텍스트에 저장하려고합니다. 오류가 발생하면 RollbackRequired 플래그를 설정하고이를 토대로 작업 단위 (UOW)에 롤백을 수행하십시오. HttpContext에서 세션에 저장 중 - CurrentSessionContext와 동일한 사용인가요?

누구든지 다른 생각이 있다면 좋을 것 같습니다.

감사합니다.

답변

0

HttpContext에서 세션에 저장 - CurrentSessionContext를 사용하는 것과 동일합니까?

네, WebSessionContext가하는 일입니다.

누구든지 다른 생각이 있다면 좋을 것 같습니다.

예외가 발생하는 경우 다시 롤백하지 않으시겠습니까?

ISession.Transaction.WasCommittedISession.ITransaction.WasRolledback은 트랜잭션이 롤백/커밋되었는지 여부를 나타냅니다. 롤백되지 않고 커밋되지 않은 경우 HttpModule에서 커밋 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 나는 그것을 서비스 나 계층에서 직접 롤백하고 싶지 않았습니다. HttpModule/UoW 구현에 맡기는 편이 나을 것이라고 생각됩니다. – TheITGuy