Mar*_*urd 12 linq vb.net aggregate aggregate-functions linq-to-sql
Aggregate当用作具有多个Into子句的Linq表达式的第一个(外部)子句时,VB.NET的查询是否存在致命缺陷,因为每个Into子句是单独执行的?
SELECT MIN(ZoneMin), MAX(ZoneMin) FROM PlantLINQ to SQL中的"明显"答案是
Dim limits = Aggregate p In Plants Select p.ZoneMin Into Min(), Max()
Run Code Online (Sandbox Code Playgroud)
但是,这个答案实际上在单独的 SQL查询中检索每个Min和Max(以及如果包括其他聚合函数,如Count和Average).这可以在LINQPad中轻松看到.
是否存在LINQPad未显示的事务(或其他使这些查询成为原子的事件),或者这是一种等待发生的竞争条件?(因此,您必须执行上述问题的答案中显示的技巧,以强制返回多个聚合的单个查询.)
总之,是否使用LINQ-to-SQL查询Aggregate在单个(或至少"原子")查询中返回多个聚合函数?
(我也说"显而易见",因为对我来说显而易见的答案Aggregate p In Plants Into Min(p.ZoneMin), Max(p.ZoneMin),实际上检索了整个表两次,即使在优化后,然后使用Linq-to-Entities Min并Max获得结果:-()
| 归档时间: |
|
| 查看次数: |
976 次 |
| 最近记录: |