¿Es posible hacer que una consulta nHibernate genere columnName <> 'valor' en lugar de no (columnName = 'value')?)?

StackOverflow https://stackoverflow.com/questions/8817076

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'?

¿Fue útil?

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
scroll top