2011-05-14 9 views
5

Uso NHibernate con FluentNH. Tengo una clase simple llamada PostCategory y contiene una colección de Publicaciones. La clase PostCategory contiene una propiedad llamada TotalActivePosts. Cuando cargo todas las PostCategories, quiero el no. de las publicaciones activas para cada categoría a poblar en esta propiedad. ¿Como puedo hacer eso? Cualquier ayuda es muy apreciada.Conocer el recuento de colecciones secundarias sin cargarlas en NHIbernate

Vijaya Anand

Respuesta

3

La forma en que lo hice es mediante el uso de un computed property. ver ítem no. 5- SQL arbitrario.
podría utilizar algo como:

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

ver también this question

+0

Gracias Jhonny. Eso hizo el truco! –

3

Usted puede hacer lo sJhonny recomienda utilizar el atributo o lazy="extra" en el mapeo. De esta forma, puede hacer Publicaciones. Contestar para obtener solo el conteo sin cargar todas las entidades.

ver este SO pregunta: NHibernate Lazy="Extra"

+0

Uso Fluent NHibernate. ¿Cómo y dónde puedo especificar este perezoso = "extra"? (NOTA: actualmente muchas clases estoy usando propiedades extra como TotalPosts, TotalComments que están vinculadas con fórmulas en clases para conocer el recuento de colecciones secundarias sin cargarlas por completo. Si puedo evitarlas usando la función lazy = "extra" es realmente genial!) –

+0

No estaba al tanto de esa opción. nice .. aunque Jaguar menciona que no es una característica 'oficial' de la opción perezosa = "extra", y descubrió que tenía errores. entonces, quizás debería usarse con precaución. –

+1

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

Cuestiones relacionadas