ile çocuk istifleme yükleme Çocuk kökeni ve tüm çocuk toplama ve toplama üyeleri istekli yük yüklemek istiyorum.NHibernate
FluentNHibernate'de SetFetchMode
'u kullanmaya çalışıyorum, ancak 3 seviyeli bir derinliğe sahip olduğum için çocuk koleksiyonlarından birinde kopyaları alıyorum. DistinctRootEntityResultTransformer
maalesef sadece kök kopyalarını kaldırır.
return Session.CreateInvoiceBaseCriteria(query, archived)
.AddOrder(new Order(query.Order, query.OrderType == OrderType.ASC))
.SetFetchMode("States", FetchMode.Eager)
.SetFetchMode("Attestations", FetchMode.Eager)
.SetFetchMode("AttestationRequests", FetchMode.Eager)
.SetFetchMode("AttestationRequests.Reminders", FetchMode.Eager)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.List<Invoice>();
Birden çok sorguyu veya buna benzer bir şeyi kullanabilir miyim? Ayrıca, bu yaklaşım veritabanından gereksiz derecede büyük sonuç kümeleriyle sonuçlanmaz mıydı?
Herhangi bir öneriniz var mı?
Gerçekten de iyi bir yazı, ancak durumuma uygulayabilirseniz emin değilim. Belirli bir kök varlığı yüklemeye istekli hakkında makalede açıklanan çözüm, benim sorun, kök varlıkların bir toplama istekli yüklemek istiyorum. Eğer MultiCritera kullanacak olsaydım, belirli bir varlık belirtmeden tüm farklı sorguları birbirine bağlamanın bir yolunu bulmalıyım. Öneriler bu nasıl yapılabilir? – Kristoffer
Bu örnekte yalnızca bir ek hiyerarşi düzeyi vardır, ancak hiçbir QuQuery/MultiCriteria oldukça işe yaramaz gibi görünen torunlara sahip değildir, çünkü daha sonraki sorgular önceki sorguların sonuçlarına başvuruda bulunamaz (Query # 1: select rootObjects r left join fetch children c nerede ...; Sorgu # 2: torun seçin c ebeveynin içinde c). –