nhibernate가 프록시 클래스 대신 클래스를 반환하도록 만드는 방법이 있습니까? 나는 그것이 게으르지 않거나 새롭게 할 수없는 경우에 마음을 먹지 않는다.Nhibernate : 프록시 클래스 대신 실제 엔티티 클래스 가져 오기
답변
당신은 당신이 게으른 = "false"를
<class name="MyEntity" table="MyTable" lazy="false">
</class>
모든 연결에 대한 프로비저닝을 취소 할 수 있습니까? 그것은 내 주요 대상의 논박을 없애지 만 다른 대상과의 관계는 유지됩니다. – ryudice
나는 Entity Framework에서 비슷한 것을 달성하기 위해 AutoMapper을 사용하고 있습니다. 당신이 탐색 속성이없는 경우 일 것이다
var nonProxiedInstance = Mapper.DynamicMap<YourType>(proxiedInstance);
. 그렇지 않으면 이러한 속성을 무시하도록 매핑을 구성해야합니다.
참고 : 이것은 (분명히) 비효율적 인 솔루션입니다.
이것은 작동하지 않습니다. 프록시는 상속 된 (실제) 클래스의 특성을 포함하지 않으므로 맵핑 된 유형에서도 누락됩니다. –
이 코드와 클래스를 unproxy 수 있습니다 재귀 적으로 수행해야 함)
할 수 있습니다 http://sessionfactory.blogspot.com/2010/08/hacking-lazy-loaded-inheritance.html에 설명 된 기술을 사용 (정의함으로써, 당신은 당신의 매핑이 정의해야
session.PersistenceContext.Unproxy(proxiedInstance)
다음 코드를 사용하여 실제 객체를 얻을 수 있습니다.
InstanceType instance;
if (proxiedInstance is INHibernateProxy)
{
var lazyInitialiser = ((INHibernateProxy)proxiedInstance).HibernateLazyInitializer;
instance = (InstanceType)lazyInitialiser.GetImplementation();
}
- 1. 프록시 객체에서 클래스 가져 오기
- 2. 제네릭 형식의 "실제"클래스 가져 오기
- 3. VB.NET 가져 오기 클래스
- 4. Python에서 클래스 가져 오기
- 5. 클래스 생성자를 가져 오기
- 6. Groovy에서 클래스 가져 오기
- 7. 가져 오기 자바 클래스
- 8. 클래스 패스의 모든 클래스 가져 오기
- 9. 모듈에서 클래스 이름 가져 오기
- 10. 하위 클래스 이름 가져 오기?
- 11. 클래스 가져 오기 Java 내
- 12. 심볼에서 모델 클래스 가져 오기
- 13. div에서 클래스 이름 가져 오기
- 14. 외부 SWF에서 클래스 가져 오기
- 15. JSP로 자바 클래스 가져 오기
- 16. JSP 파일에서 클래스 가져 오기
- 17. Clojure에서 Java 클래스 가져 오기
- 18. 자이 썬에서 가져 오기 클래스
- 19. 패키지에서 모든 클래스 가져 오기
- 20. 프록시 객체의 기본 클래스
- 21. WCF 추가 프록시 클래스
- 22. 문제 빌딩 프록시 클래스
- 23. BizTalk의 프록시 클래스 사용
- 24. Webservice를 프록시 클래스 생성
- 25. 일반 프록시 클래스
- 26. 프록시 클래스 란 무엇입니까
- 27. C++ 프록시 클래스
- 28. 스키마 가져 오기 .net webservice의 확장 클래스
- 29. 클래스가 파생되는 추상 클래스 형식 가져 오기
- 30. 저장소에서 가져 오지 않고 NHibernate associate 클래스
중복 - 참조 http://stackoverflow.com/questions/1867998/nhibernate-get-objects-without-proxy – mookid8000