NHibernateで休眠中のHQL-Queryを使用します。
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は、nullになる可能性のある文字列フィールドです。NHibernateにwhere句の最初のisnull()に問題があるようです。私が使用するとき、z.Street+isnull(z.PostalCode,'')
それは働いています。私も試しcast(isnull(z.Street,'')+isnull(z.PostalCode,'') as string)
ましたが、NHibernateにキャスト関数に問題があるため(2つ以上のパラメーターが生成されるため)、これも機能しません。誰かが私を助けてくれますか、NHibernateでこれをどのように解決できますか?-おそらく、where-conditionを記述する別の方法がありますか?
NHibernate3.2を使用しています