2014-07-18 2 views
1

PerRequestLifetimeManager를 사용하여 ASP.NET MVC 용 Unity Bootstrapper를 설정하고 내 데이터베이스 컨텍스트 (내 경우 RavenDb는 중요하지만 상관 없음)를 등록했습니다. 요청이 끝나면 myContext.SaveChanges를 호출하려고합니다. 다음은 NInject에서이 작업을 수행 한 방법입니다.Unity PerRequestLifetimeManager SaveChanges

kernel.Bind<IDocumentSession>().ToProvider<DocumentSessionProvider>().InRequestScope().OnDeactivation(c => c.SaveChanges()); 

Unity에서이 작업을 수행하는 올바른 방법은 무엇입니까? 지금 볼 수있는 유일한 방법은 Global.asax에서 EndRequest를 재정의하는 것입니다.하지만 조금 더러운 것처럼 보입니다.

답변

1

요청이 끝날 때 자동으로 SaveChanges으로 전화하지 마십시오. 실제로 그 시점에서 변경 사항을 실제로 저장할지 여부를 결정할 수 없기 때문에 안전하지 않습니다. 자세한 내용은 this Stackoverflow answer을 읽으십시오.