У меня есть запрос, в котором меня интересует только количество строк, однако запрос, который выдает NHibernate, не работает с Sybase.У меня уже есть собственный диалект Sybase, но я не могу найти, где переопределить rowcount.
Учитывая следующий код:
var a = from b in table where b.something = 5 select b
var rows = a.Count
Создает SQL, подобный этому:
select cast(count(*) as INTEGER) as p1 from table
Я не понимаю, почему NHibernate хочет привести результат подсчета, и как я могу переопределить диалект или что-то еще, чтобы NHibernate не включал приведение.В любом случае результат подсчета может быть преобразован в целое число.
Если я, тем не менее, использую QueryOver, все работает отлично.Проблема, однако, в том, что одно из моих условий зависит от длины строки (да, дизайн БД мог бы быть лучше, но в настоящее время я не могу его изменить).Использование linq для вызова .Length на строку в условиях работы.Однако я не могу использовать длину строки в качестве условия в выражениях QueryOver.Мне также нужна операция содержимого, которая работает с linq, но не с QueryOver.
Есть ли способ переопределить способ создания запроса Count, чтобы он работал?Меня интересует только соответствие строк, а не количество, есть ли другой способ сделать это?Может вместо QueryOver?интерфейс для использования длины SQL и в операторах?