¿Es posible hacer que una consulta nHibernate genere columnName <> 'valor' en lugar de no (columnName = 'value')?)?
-
27-10-2019 - |
Pregunta
¿Es posible hacer que una consulta nHibernate genere SQL que tenga columna <> 'valor' en lugar de no (columnName = 'valor')?
Me dicen que usar no () puede tener problemas de rendimiento SQL sobre <>.
Por lo general, estoy escribiendo mis consultas como esta ...
criteria.Add(Restrictions.WhereNot<Region>(r => r.Id == region.Id));
lo que resulta en
WHERE not (this_.RegionID = 2048)
ACTUALIZAR
Esta pregunta sugiere que ya no hay problemas de rendimiento con la codificación de una forma u otra
En SQL Server, ¿hay alguna diferencia entre no (columnName = 'valor') y columnName <> 'value'?
Solución
Creo que esa opción no está disponible en Criteria API. Pero puede usar Expression.sql () de la siguiente manera
criteria.Add(Expression.Sql("columnName <>'value'"));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow