방금 프로젝트를 NHibernate 3.0으로 업데이트했고, 일부 기준 문을 LINQ 문으로 변환하려고합니다. 새로운 LINQ 문이 매핑 파일에서 (FluentNHibernate를 사용하여) 선언 한 페칭 규칙을 준수하지 않는 것만 제외하면 모든 것이 잘 작동하는 것 같습니다. 예를 들어글로벌 인출 룰은 Hibernate 3.0의 LINQ 프로 바이더에 의해 존중 받습니까?
: 내가 컬렉션을 기대
var users = Session.Query<User>().ToList();
자신의 코스 특성이 열심히로드와 데이터베이스의 모든 사용자로 반환
public UserMap
{
Id(x => x.Id);
References(x => x.Course).Fetch.Join();
}
는 지금은이 같은 모든 사용자를 조회 이는 Criteria 문을 사용할 때 정확히 얻을 수있는 것입니다. 그러나 LINQ 공급자를 사용할 때 NH가 생성 한 쿼리에는 Course 테이블의 조인이 포함되지 않으므로 모든 코스가 지연로드되어야합니다. 이 행동이 예상됩니까? 만약 그렇다면 어떻게 NHibernate가 매핑에서 선언 된 페칭 규칙을 존중하도록 할 수 있습니까?
내 웹 프로젝트 (NHibernate에 대한 참조가없고 어쨌든 전략을 가져 오는 데 신경 쓰지 않아야 함)에 사용되는 IDataContext 인터페이스의 IQueryable 속성으로 노출되므로이 작업은 불가능합니다. –
funlambda