- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个相当简单的 SQL 查询被证明在从 LINQ 尝试时非常令人困惑。
我有一个包含 ZoneMin
列的 SQL 表 Plant
。
我想找到列中值的最小值和最大值。
T-SQL 中的答案非常简单:
从植物中选择 MIN(ZoneMin)、MAX(ZoneMin)
什么是可以让我使用此(或一些类似的)SQL 的 LINQ 查询?
我对 .Aggregate() 和 .GroupBy() 进行了各种尝试,但都没有成功。我还查看了几个看起来相似的 SO 问题。
这可以简单地通过应用于结果数组的方法来实现,但我不需要从每个 SQL 行传输一个值,因为它在 T-SQL 中非常简单。
最佳答案
要获得与原始查询相同的性能,您需要使用分组(通过一个常量来最小化影响,例如 0
),以便您可以引用同一组记录在同一个查询中两次。使用表名会导致在每个引用上生成一个新查询。尝试以下操作:
(from plant in db.Plants
group plant by 0 into plants
select new { Min = plants.Min(p => p.ZoneMin), Max = plants.Max(p => p.ZoneMin) }
).Single()
这会产生以下查询:
SELECT MIN(plants.ZoneMin), MAX(plants.ZoneMin)
FROM (SELECT 0 AS Grp, ZoneMin FROM Plants) AS plants
GROUP BY plants.Grp
在优化器完成它之后,它会吐出与您的查询等效的内容,至少根据 SQL Server Management Studio 是这样。
关于.net - `SELECT MIN(ZoneMin), MAX(ZoneMin) FROM Plant` 作为 LINQ to SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12068233/
这个相当简单的 SQL 查询在从 LINQ 尝试时被证明是非常令人困惑的。 我有一个 SQL 表 Plant带列ZoneMin . 我想找到列中值的最小值和最大值。 T-SQL 中的答案非常简单: S
这个相当简单的 SQL 查询被证明在从 LINQ 尝试时非常令人困惑。 我有一个包含 ZoneMin 列的 SQL 表 Plant。 我想找到列中值的最小值和最大值。 T-SQL 中的答案非常简单:
我是一名优秀的程序员,十分优秀!