데이터베이스에서 인스턴스를 요청할 때 FetchMode.Eager
구문을 사용하여 열심히로드하는 하위 엔티티로 FNH를 통해 여러 엔티티를 구성했습니다. 이제는 매핑에서 게으른로드를 무시하고 하위 엔티티를 '실제'데이터로 채우는 인상을 받고있었습니다. 나는 개체의 컬렉션을 반복하고 결과 세트를 생성하는 Parallel.ForEach
를 사용하고자하기 때문에(Fluent) Nhibernate 지연로드 및 Parallel.ForEach에 대한 영향
내가 이렇게 할 이유가 있지만, 나는 다음과 같은 오류 얻을 :
[18000] System.InvalidOperationException:
There is already an open DataReader associated with this Command
which must be closed first.
내가 만약을 'NHibernateUtil.Initialize'를 사용하여 모든 자식 엔티티를 초기화하면 예상대로 작동합니다.
FetchMode.Eager
의 사용에 대한 이해가 잘못 되었습니까?
나는 모두 알고 있으므로 'NHibernateUtil.Initialize'를 사용하십시오. – AwkwardCoder
그건 중요하지 않습니다. 객체에는 여전히 컨텍스트가 존재할 것으로 예상되는 프록시가 있으며, 다른 스레드에있는 경우에는 그렇지 않습니다. – Deleted
NHibernateUtil.Initialize는 프록시를 제거합니다 .... – AwkwardCoder