2011-05-14 23 views
5

numaralı telefona yüklemeden bilinir. FluentNH ile NHibernate kullanıyorum. PostCategory adında basit bir sınıfım var ve bir Mesajlar koleksiyonu içeriyor. PostCategory sınıfı, TotalActivePosts adlı bir özellik içerir. Tüm PostCategory'leri yüklediğimde hayırı istiyorum. Bu kategoride yer alan her bir kategori için aktif yayınların listesi. Bunu nasıl yapabilirim? Herhangi bir yardım büyük beğeni topluyor.Çocuk koleksiyonlarının bilinmesi onları NHIbernate

Vijaya Anand

cevap

3

Ben bir computed property kullanmaktır yaptığı gibi. madde no. 5- keyfi SQL.
gibi bir şey kullanabilirsiniz:

Select Count(*) from Posts where PostCategoryId = Id And IsActive = 1  

ayrıca bkz this question

+0

Teşekkür Jhonny:

bu SO soruya bakın. Bu hile yaptı! –

3

Sen sJhonny önerir ne ya haritalama üzerinde lazy="extra" özelliğini kullanabilir. Böylelikle tüm varlıkları yüklemeden sadece sayımı almak için sadece Posts.Count yapabilirsin. NHibernate Lazy="Extra"

+0

Fluent NHibernate kullanıyorum. Bu tembel = "fazladan" nasıl ve nerede belirleyebilirim? (Not: Şu anda çok sayıda sınıf, toplam koleksiyonları, bunları tamamen yüklemeden, çocuk koleksiyonları sayısını bilmek için sınıfları ile ilişkili olan TotalPosts, TotalComments gibi ekstra özellikleri kullanıyorum. Eğer tembel = "extra" özelliğini kullanarak bunları önleyebilirseniz Gerçekten harika!) –

+0

Bu seçeneğin farkında değildim. güzel .. Jaguar, tembel = "ekstra" seçeneğinin 'resmi' bir özelliği olmadığından bahseder ve arabayı bulmuş. bu yüzden belki dikkatle kullanılmalıdır. –

+1

@Vijaya 'HasMany (p => p.Posts) .ExtraLazyLoad()' – Vadim