El espiritu es bastante parecido a lo que Fabi puso. Respecto a la consulta con Query Generator, tenes que pasar de una fluent interface a un criteria de un criteria te comila el query y ejecuta cada vez, que pasa si tenes que hacer la misma query por segundo 24 horas como en mi caso?
En HQL me la compila la primera vez, y luego se ejecuta todas las veces que necesito...si quiero llegar a hacer cache para que por los proximos minutos a la base puedo (en una consulta read-only que se hace mucho es recomendable) Es decir, tengo algo cosido para HQL...uso HQL...tengo algo dinamico uso criteria. El enfoque de usar el fluent API de Ayende para abstraer criteria es interesante, soluciona algunos problemas de sintaxis realmente pero no el problema de fondo de cuando usar criteria o HQL. Por cierto de tu experiencia == null lo sabe traducir a Expression.isnull y no a Expression.Eq(prop, null) ? supongo que si habra pensado en eso...pero sino no anda. Gustavo 2008/6/25 Fabio Maulo <[EMAIL PROTECTED]>: > No hay que defender nada... > NH, actualmente, tiene 3 forma de hacer query OO: > HQL > Criteria > SQL (NH style) > > Cualquiera es admitida. Creo que el post de Gustavo se debe a que hay > programadores que se ostinan a usar Criteria por cuestiones que no se > entienden; tipo: "custión de estilo", "me lo impusieron", "me gusta mas" > etc. > > Tenes varios destornilladores y cuando tenes que elegir uno lo que te viene > en la cabeza no es el "estilo" o cual mas te gusta: elegí lo que es mas > apropiado para el tornillo que tenes enfrente. > > Lo mismo vale para las tres formas de hacer query sobre objetos que NH > brinda (hasta el momento son 3). > > Espero haber entendido bien el espiritu de Gustavo. > Bye. > Fabio Maulo. > > El día 25 de junio de 2008 12:39, Jose Ramirez <[EMAIL PROTECTED]> > escribió: > >> Hola: >> No es que defienda Criteria (de hecho hace poco me peque contra la pared >> con ciertas limitaciones que tiene) pero para consultas sensillas como esa, >> si usas el NHibernate Query >> Generator<http://www.ayende.com/projects/downloads/nhibernate-query-generator.aspx> >> te >> quedaria algo asi: >> >> Where.Properties.Workstation == workstation && >> Where.Bag.NextAction != null && >> Where.Bag.Properties.PreviousAction == null && >> (Where.Bag.RiskLevel == null || Where.Bag.RiskLevel == risklevel) >> >> Bastante legible y con compile-time checking. >> >> saludos >> -- >> Jose Ramirez >> http://www.josehr.com.ar >> >> >> > > > -- > Fabio Maulo > > > > --~--~---------~--~----~------------~-------~--~----~ Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano -~----------~----~----~----~------~----~------~--~---
