Nhibernate를 파고 들기 시작했습니다. 내가 좋아하는 많은 것들이 있지만, 싫어하는 점이 하나 있습니다 : "프록시 생성"/ 지연로드 메커니즘. 내가 Session에 대한 일종의 참조를 유지하고, 지연로드를 유발할 수있는 속성에 액세스하기 전에 엔티티가 세션과 연관되어 있는지 확인해야한다는 생각은 내가 바라는 것보다 내 viewmodels에서 좀 더 배관된다. 내가 사용한 마지막 ORM 매퍼에서 우리는 느린 로딩에 대한 다른 접근법을 사용하여 적은 POCO 엔티티의 비용으로 세션 문제를 완전히 무시할 수있게했습니다. 기본적으로 내가이와 비슷한 구문, NHibernate에와 같은 일을 할 : 아이디어 컬렉션이 이미로드 된 경우 ormService 단순히 (엔티티에서 게으른로드 요청을 무시하는 것입니다nhibernate는 프록시없이 lazyload 할 수 있습니까?
public class Order
{
// this will introduced through the ctor using for ex an interceptor and Castle Windsor
private IOrmService ormService;
List<OrderLine> details = new List<OrderLine>();
public IEnumerable<OrderLine> Details
{
get
{
ormService.LazyLoad(this, o => o.Details);
return this.details;
}
}
}
국가 관리 문제에 신경 쓰지 마라 .-)). NHibernateUtils 클래스를 살펴 보았습니다. NHibernateUtils 클래스에는 초기화되고 초기화 된 컬렉션 메서드가 있지만 프록시를 사용한다고 가정합니다. 기본적으로, 나는 nhibernate someting을 말하는 것과 같은 방법이 필요합니다. "이봐, 네가주는이 세션에서이 속성을 채워라." 상태 관리 등은 외부에서 처리 할 수 있습니다. Nhibernate에서이 작업을 수행 할 수 있습니까?