我有一个奇怪的问题。我注意到下面定义的代码:
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
我的代码中的 this 在 SQL 查询运行后被使用,就像 Linq-to-Objects 而不是 Linq-to-SQL。
当然,在执行第三行之后开始 SQL 查询。