Я использую следующий HQL-запрос с NHibernate:
from Contact a where
a.Id in (select x.Person.Id from PersonCompany x
inner join x.Company y
inner join y.Addresses z
where isnull(z.Street,'')+isnull(z.PostalCode,'') Like :val)
В этом запросе NHibernate пытается преобразовать: val (который является строкой) в double.z.Street и z.PostalCode являются строковыми полями, которые могут быть нулевыми.Похоже, что NHibernate имеет проблему с первым isnull () в предложении where.когда я использую z.Street+isnull(z.PostalCode,'')
это работает.Я также попробовал cast(isnull(z.Street,'')+isnull(z.PostalCode,'') as string)
, но это также не работает, потому что у NHibernate есть проблема с функцией приведения (она генерирует более двух параметров).Может кто-нибудь помочь мне, как я могу решить эту проблему с NHibernate?- Возможно, есть другой способ написать условие where?
Я использую NHibernate 3.2