Bir öğe içeren bir alt öğe içeren bir üst nesneye sahibim, çocuk koleksiyonunda 3 öğe içeren bir "torun" koleksiyonu var.NHibernate ThenFetchMany yinelenen çocukları alıyor
Parent parentObject = session.Query<Parent>()
.FetchMany(x => x.Children)
.ThenFetchMany(x => x.GrandChildren)
.Where(x => x.Id = "someparentid")
.Single();
şöyle
Ben Ne bulgu değilim orada yinelenen çocuklar nesnelerin vardır olmalıdır zaman üst nesnenin bağlı (toplamda 3) olmasıdır NHibernate kullanarak veritabanından ana nesnesi yükleme am sadece bir. (Her çocuğa doğru şekilde bağlanmış 3 torun nesnesi vardır.) Çocuk koleksiyonunu yüklemek için istekli sadece doğru şekilde çalışır.
Yinelenen çocuklar olmadan tam üst nesnenin yüklenmesini nasıl başarabileceğimi biliyor musunuz?
- düzenlemek için teşekkürler, olmadı sabah kahvesi henüz :) – Phill
ben Oluşturulmakta olan SQL sorgusunun profilini ve her iki tarafta da birincil anahtarda ve yabancı anahtarda birleştirme koşuluyla iki tane sol bağlantı vardır, bu yüzden bir kartezyen ürün olmadığından emin değilim. Bunu geçmişte LinqToSql kullanarak başardım. – Simon
@Simon - Sorguyu alın ve SQL Server Management Studio'ya koyun ve sorguyu çalıştırın, tüm tablolardan tüm sonuçları görürsünüz. Aynı sonucu elde etmek mümkündür, ancak HQL yazmanız gerekir. Derin nesne grafikleri için Ayende'nin bloguna bakın - http://ayende.com/blog/2580/efficently-loading-deep-object-graphs – Phill