컬렉션에 대한 로딩 기술 (열망/게으름) 설정이 가능합니까 :)?런타임시 NHibernate를 구성 할 수 있습니까?
1
A
답변
1
쿼리 당 가져 오기 모드를 동적으로 변경할 수 있습니다.
IList cats = sess.CreateCriteria(typeof(Cat))
.Add(Expression.Like("Name", "Fritz%"))
.SetFetchMode("Mate", FetchMode.Eager)
.SetFetchMode("Kittens", FetchMode.Eager)
.List();
documentation의 12.5 절을 참조하십시오.
1
UI 레이어에서이 API를 사용하고 싶지 않기 때문에 ICriteria API를 숨길 수있는 BestPractice가 있습니까? 내 repository.GetAll 메소드에 대한 오버로드를 작성해야합니까? 아니면 다른 권장 사항이 있습니까? – Rookian
나는 당신이 의미하는 바를 잘 모릅니다. UI에서 쿼리 기능을 제공하는 방법에 대해 걱정이된다면 http://jnb.ociweb.com/jnb/jnbNov2003.html의 "쿼리 API 래핑"을 살펴보십시오. 그렇지 않으면 일반적으로 UI 레이어는 데이터 액세스 레이어에 의존하는 비즈니스 계층에 따라 달라지며 nhibernate 항목은 대개 데이터 액세스 레이어에 있습니다. – ewernli
이제 GetAll 메서드를 재정의합니다. 나는 못생긴 끈을 좋아하지 않는다. 나는 이것을위한 약간의 도우미 클래스를 쓴다고 생각한다. 지금까지 감사드립니다. – Rookian