1

是否可以让 Nhibernate 查询生成具有 columnName<>'value' 而不是(columnName='value')的 Sql?

有人告诉我,使用 not() 可能会对 <> 产生 Sql 性能问题。

通常我会这样写我的查询......

criteria.Add(Restrictions.WhereNot<Region>(r => r.Id == region.Id));

这导致

WHERE  not (this_.RegionID = 2048)

更新

这个问题表明,以一种或另一种方式编码不再存在任何性能问题

在 SQL Server 中,not(columnName='value') 和 columnName<>'value' 之间有什么区别吗?

4

1 回答 1

2

我认为该选项在标准 api 中不可用。但是您可以使用 Expression.Sql() 如下

criteria.Add(Expression.Sql("columnName <>'value'")); 
于 2012-01-11T12:38:38.483 回答