1
3 개의 쿼리와 미래를 사용하여 3 개의 호출을 일괄 처리하는 완전한 객체 그래프를 추출하려고합니다.Nhibernate는 future를 사용하여 쿼리를 결합합니다.
여기 내 개체 그래프의 축소 버전입니다.
public class Talent
{
public virtual int Id { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string Slug { get; set; }
public virtual IList<Credit> Credits { get; set; }
public virtual IList<Show> Creations { get; set; }
}
재능 쿼리는 크레딧, 나는 또 다른 SQL 쿼리는이 데이터를 다시 가져 오기 위해 생성되는 볼 수없는 그러나 창조주
을 얻는 방법 일 수 있습니다. 다음은 쿼리입니다.
//Selectes the root node
var talentQuery = session.QueryOver<Filmslave.Domain.Models.Talent>()
.Where(t => t.Slug == slug)
.Take(1)
.Future();
//Fills Talent.Creations
var creationsQuery = session.QueryOver<Filmslave.Domain.Models.Creator>()
.Fetch(c => c.Shows).Eager
.JoinQueryOver(c => c.Talent).Where(t => t.Slug == slug)
.Future();
//Fills Talent.Credits
var creditsQuery = session.QueryOver<Filmslave.Domain.Models.Credit>()
.Fetch(c => c.Role).Eager
.Fetch(c => c.Episode).Eager
.JoinQueryOver(c => c.Talent).Where(t => t.Slug == slug)
.Future();
talent = talentQuery.FirstOrDefault();
크레딧을 받으려면 어떻게해야합니까?
감사합니다. 이걸 어떻게 설명 할 수 있니? 크레딧 [0]. – Cogslave
당신이 Hibernate에게 콜렉션 인 자식의 자식에 대한 페치를하도록 지시하는 구문이다. (예를 들어, t.Credits는 콜렉션이고, t.Credits [0] .Role은 Hibernate에게 all을 가져 오도록 지시하는 방법이다. t)에 속하는 모든 신용 요소의 역할 요소 –