2012-01-21 3 views
0

더 나은 점은 무엇입니까? 아니면 다음과 같은 좋은 습관이 있습니까? Spring.net을 사용하여 DbContext의 인스턴스를 만든 다음 액션에 사용할 모든 컨트롤러에이 인스턴스를 삽입합니다. 객체는 싱글 톤입니다. 때로는 "The ObjectContext 인스턴스가 삭제되었습니다."라고 말하는 예외가 발생합니다.이 이유가 있을지도 모릅니다. 그러나 이것은 반복 가능하지 않으며, 지금까지는 내 응용 프로그램이 개발 중에 사용되었습니다.contollers 및 작업을 통해 Spring.Net에서 생성 된 DbContext 객체 재사용

이제 모든 컨트롤러 클래스에서 DbContext를 만들고 해당 동작에서 다시 사용하는 것이 더 낫습니다. 또는 모든 액션 자체에 DbContext 객체를 만들 수도 있습니다. 또는 싱글 톤이 아닌 Spring 설정에서 설정하기 때문에 액세스 할 때마다 생성됩니까?

그것은 요청 범위를 사용하여 dbcontext를 주입하는 것이 가장 좋습니다 답변 및 설명

답변

1

주셔서 감사합니다. 이렇게하면 컨텍스트가 요청을 시작할 때 만들어지고 끝에 배치됩니다. 요청 중에는로드 된 객체를 처리 할 수 ​​있도록 db 컨텍스트를 사용할 수 있습니다.

싱글 톤으로 등록하면 dbcontext는 모든 요청에 ​​대해 공유되며, 대부분의 경우 원하는 것은 아닙니다. 예를 들어,로드 된 모든 객체에 대한 참조를 보유하고있어 잠재적으로 전체 db를 메모리에로드 할 수 있습니다.