После обновления с 4.1 до 5.2 nhibernate создает запрос немного по-другому, помещая «ИЛИ» там, где он не приветствуется.
4.1
...,
...,
(select cast(count(guia5_.ID) as NUMBER(10, 0))
from SAM_GUIA guia5_
where guia5_.PEGID = peg1_.ID <<<<<<<<<<<<<<<
) as col_41_0_,
5.x
...,
...,
(select cast(count(guia5_.ID) as NUMBER(10, 0))
from SAM_GUIA guia5_
where guia5_.PEGID = peg1_.ID <<<<<<<<<<<<<<<
or (guia5_.PEGID is null) <<<<<<<<<<<<<<<
and (peg1_.ID is null) <<<<<<<<<<<<<<<
) as col_41_0_,
Связанный запрос linq:
...,
...,
RecordCount = (from c in repositoryGuia.All()
where c.PegId == b.Id
select c.Id
).Count(),
Дополнительная информация о отображении:
Использование NHibernate 5.2.6 и Fluent 2.1.2.
Почему версия 5 переводит другой оператор SQL?