我正在使用查询缓存和 ORDER BY 子句看到我称之为 NHibernate 中的错误...
当我运行以下查询时...
SELECT this_.Id as y0_,
this_.Name as y1_
FROM Products this_
WHERE this_.IsActive = 1
ORDER BY this_.IsPremium desc
...如果我打开了查询缓存,NHibernate 会成功缓存它的结果,并且我告诉它缓存这个查询(使用 eg criteria.SetCacheable(true)
)。
不幸的是,正如精彩的NHProf告诉我的那样,NHibernate 在运行此查询时也使用缓存的查询结果:
SELECT this_.Id as y0_,
this_.Name as y1_
FROM Products this_
WHERE this_.IsActive = 1
ORDER BY this_.IsPremium desc,
this_.Name
任何人都可以解释为什么或向我指出有关此“功能”的一些深入文档吗?或者,更好的是,有没有人能解决这个问题?