가 나는 일에 대한 해결책을 찾을 수없는 이상한 행동이 게으른 폐쇄하지 읽어 들이기 .. 동작의 I 경험은 평소 no session or session was closed
클래식 LazyInitializationException
없다NHibernate에 게으른는 = 여분이 더 세션이나 세션이
- 세션 당 요청 세션이 Spring.NET
OpenSessionInViewModule
- 와 경계 세션이 열리고에 경계 : 나는 때문에 상황에 맞는 세션과 게으른로드 속성/컬렉션에 액세스하려고하지만, 이것으로 나의 경우 문맥 (웹 요청)
- lazy = "extra"또는 "set"(매핑 집합 모음)과 함께 "목록"(매핑 목록 컬렉션)으로 컬렉션 된 엔터티 (이 문제는 주로 게으른 = 추가로 발생합니다 ..)
- 추가 cound에 대한 카운트 문을 수행하지만, 전체 콜렉션을 액세스하는 일반적인 문제 조사 후 예외
를 throw 수 :
더 세션이- 객체가 모든 세션에 묶여되지 않습니다
Session.Clear
또는Session.Evict
에 대한 호출은 이상한 .. 나는 이런 일이 왜 명시 적 이유를 찾을 수 없습니다 Spring.NET WebSupportModule가 등록되지 않은(작동 제거 된 예를 들어 해당하므로, 어떠한 게으른)되었다 행동은 내가
NHprof
에서 프로필 경우, 나는 새로운 세션에서 예외를 보았습니다, 즉 문맥 세션이 올바르게 작동합니다, 하지만 예외가 발생하면 그 예외는 2 차 세션에서 시각화됩니다. 세션 및 단일 컨텍스트 세션 이 열립니다.
다른 사람이 그런 상황을 일으킬 수있는 이유를 알고 있습니까? 미리 감사드립니다.
이것이 모두 설정되는 방법에 대한 코드 샘플을 게시하면 도움이됩니다. –
질문에서 말한 것처럼 코드 샘플은 중요하지 않습니다. 중요한 것은 컨텍스트에 대한 설명입니다. 컨텍스트/구성의 모든 부분은 각 제품 설명서의 모범 사례로 작성됩니다 – Hoghweed
질문이 무엇인지 확실하지는 않지만'lazy = "extra"와'.count() '필요성을 알고 있어야합니다. 'select * '와 in memory count가 아닌'select count (*)'를 수행하는 열린 세션. – Rippo