Restricción de Criterios NHibernate vs Expresión
Si busco ejemplos de consulta de API de criterios NHibernate en Internet, hay ejemplos que usan Restricciones y otros usan Expresiones. ¿Cuáles son las diferencias entre esos dos?
Por ejemplo:
posts = session.CreateCriteria<Post>()
.Add(Expression.Eq("Id", 1))
.List<Post>();
posts = session.CreateCriteria<Post>()
.Add(Restrictions.Eq("Id", 1))
.List<Post>();
3 answers
Creo que las restricciones se liberaron en NH2 y ahora es la forma preferida.
De acuerdo con Resharper cada vez que uso la expresión me da una pista para decir Access to a static member of a type via a derived type
También según este post de Ayende: -
Prefiere usar las Restricciones en su lugar de la clase de expresión para definir Consultas de criterios.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-30 08:03:21
En el código fuente de namespace NHibernate.Criterion.Expression
se dice que"Esta clase es Restricciones de uso semi-obsoletas"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-30 10:45:50
La expresión hereda de Restricciones, pero se recomienda usar Restricciones. La expresión está aparentemente en desuso.
De acuerdo con Ayende (antiguo post sobre NH 2.0), la documentación generalmente se referirá a Restricciones.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-30 08:02:38