奇妙な問題があります。以下に定義されているコードに気づきました。
var query= unitOfWork.Session.CreateCriteria(typeof (SomeEntity)).Future<SomeEntity>().AsQueryable();
var queryWithWhere= query.Where(x => x.SomeProperty.ToLower().Contains("Xxx".ToLower()));
var result= queryWithWhere.ToList();
適切な結果が得られますが、NHibernateProfilerで監視したSQLクエリにwhere句が含まれていません。
SELECT ...
FROM SomeEntity
そして、私のコードからのこれWHERE
は、Linq-to-SQLの代わりにLinq-to-Objectsのように、SQLクエリの実行後に使用されるようです。
そしてもちろん、SQLクエリは3行目が進んだ後に開始されます。