c# - 优化 nHibernate 中的最小和最大查询

标签 c# nhibernate query-optimization

我在 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 的情况下以某种方式优化此操作,以便它只向数据库服务器创建一个请求吗?

最佳答案

你看过Future Queries吗? ?我认为它也适用于 linq 查询。

关于c# - 优化 nHibernate 中的最小和最大查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8679062/

相关文章:

c# - 最小生成树快速图表

c# - 从 VS2012 升级到 VS2013 后 SGEN 不起作用

linq - 使用 LINQ 表达式代替 NHIbernate.Criterion

c# - NHibernate-无法执行查询-输入字符串的格式不正确

c# - 使用隐藏的站点地图节点来控制访问

MySQL/memSQL 在 BETWEEN 连接条件下不使用索引

mysql - 对具有 3,500,000 行的表进行查询优化,建立索引

c# - 无法理解 IEnumerator

c# - 使用数组读取 JSON 文件

sql - 最高效的 SQL 查询