1

Nhibernateクエリでnot(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 に答える