Как я могу остановить добавление NHibernate «или this._property is null» в сгенерированные запросы? - PullRequest
0 голосов
/ 01 ноября 2011

Я использую NHibernate для запроса к моей базе данных, и одно из полей, с которыми мы работаем, раньше отображало Nullable Bool (bool?)

Мы изменили его на обычный тип bool, подкрепленный полем бит SQL Server NOT NULL.

NHibernate все еще генерирует запросы, которые выглядят так:

SELECT count(*) as y0_
FROM   mydb.dbo.[Customer] this_
   inner join mydb.dbo.[Order] fi1_
     on this_.OrderId = fi1_.Id
WHERE  (this_.CustomerId = 9625 /* @p0 */
    and (this_.Deleted = 0 /* @p1 */
          or this_.Deleted is null))

Эта последняя строка - or this_.Deleted is null - не нужна и фактически замедляет результирующий запрос, заставляя SQL Server выполнить дополнительную проверку NULL.

Как я могу заставить NHibernate просто сгенерировать this_.Deleted = 0 и пропустить проверку NULL?

...