优化最小&在nHibernate中最大查询

本文关键字:查询 nHibernate 优化 | 更新日期: 2023-09-27 18:19:09

我在nHibernate中有以下查询。目的是得到某组数据的第一次和最后一次测量时间。

var measurements = _session.Query<Measurement>()
                           .Where(x => categories.Contains(x.CategoryId));
first = measurements.Min(o => o.StartTime);
last = measurements.Max(o => o.StartTime);

SQL Server Profiler给出如下输出:

exec sp_executesql N'select cast(min(measuremen0_.StartTime) as DATETIME) as col_0_0_ from Measurement measuremen0_ where measuremen0_.Category in (@p0 , @p1)',N'@p0 int,@p1 int',@p0=7654321,@p1=3324673
exec sp_executesql N'select cast(max(measuremen0_.StartTime) as DATETIME) as col_0_0_ from Measurement measuremen0_ where measuremen0_.Category in (@p0 , @p1)',N'@p0 int,@p1 int',@p0=7654321,@p1=3324673
我能否在不使用HQL的情况下以某种方式优化这个,以便它只创建一个对数据库服务器的请求?

优化最小&在nHibernate中最大查询

你看了未来查询吗?