【发布时间】:2012-01-11 09:40:25
【问题描述】:
是否可以让 Nhibernate 查询生成具有 columnName'value' 而不是没有(columnName='value')的 Sql?
有人告诉我,使用 not() 可能会导致 Sql 性能问题超过 。
通常我会这样写我的查询...
criteria.Add(Restrictions.WhereNot<Region>(r => r.Id == region.Id));
导致
WHERE not (this_.RegionID = 2048)
更新
这个问题表明,以一种或另一种方式编码不再存在任何性能问题
In SQL Server is there any difference between not(columnName='value') and columnName<>'value'?
【问题讨论】:
-
它们应该针对任何合理的 SQL 产品(当然对于 SQL Server)进行相同的优化,所以我首先要挑战性能问题的假设。
-
我认为该选项在标准 api 中不可用。但是您可以使用标准。添加(Expression.Sql("columnName 'value'"));
-
@an2 是的,这是一个有用的解决方法,谢谢。如果您将其添加为答案,我会接受它,假设没有其他问题出现。
标签: sql-server nhibernate nhibernate-criteria