Al haberme quedado atrás en el mundo de ORM y el acceso a los datos modernos, estoy buscando alejarme de DataSets (estremecimiento) y ponerme en un marco de mapeo adecuado.NHibernate efficiency
Estoy a punto de familiarizarme con Linq en SQL, y ahora estoy investigando NHibernate con miras a utilizarlo en nuestro próximo proyecto.
Con old school sql y conjuntos de datos, sus consultas sql obviamente solo devuelven los datos que desea. También entiendo que L2S también es lo suficientemente inteligente como para evaluar sus cláusulas where para que solo devuelva los objetos que solicitó. ¿NHibernate es lo mismo? ¿Y es lo mismo con Ayende's Linq a NHibernate?
Con esto quiero decir, si lo hago el equivalente a:
Select * from customers where name = "fred"
va a buscar a todos los clientes en la memoria, y luego filtrar los no freds, o es lo suficientemente inteligente como para sólo recibe lo que se necesidades en primer lugar?
Si es inteligente, ¿cuáles son las advertencias? ¿Hay algún tipo de consulta que no se puede evaluar de esta manera? ¿Qué problemas de rendimiento debo tener en cuenta?
Gracias
Andrew
No estoy * preocupado * Solo estaba tratando de establecer los hechos. ¿Has visto el perfilador nhibernate de Ayende? –
Solo he visto lo que puso en su blog. Parece realmente limpio. Sí, lo siento por el fraseo, curioso hubiera sido una palabra mejor. Sé personalmente que configuré log4net para atrapar algunos desagradables escenarios de N + 1. – Min