大佬教程收集整理的这篇文章主要介绍了vb.net – 由于每个into子句是单独执行的,是否存在致命的缺陷?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
SELECT MIN(ZoneMin),MAX(ZoneMin) FROM Plant
in LINQ to SQL的“明显”答案是
Dim limits = Aggregate p In Plants SELEct p.ZoneMin Into Min(),Max()
但是,这个答案实际上是在单独的SQL查询中检索Min和Max中的每一个(并且包括其他聚合函数如Count和AveragE).这可以在LINQPad中轻松看到.
LINQPad没有显示一个事务(或其他使这些查询原子的事情),还是等待发生的竞争条件? (所以你必须做上面问题的答案中显示的技巧,强制单个查询返回多个聚合.)
总而言之,是否有使用Aggregate的LINQ-to-SQL查询在单个(或至少“原子”)查询中返回多个聚合函数?
(我也说“明显”,因为对我的明确答案,在植物最小(p.ZoneMin),Max(p.ZoneMin)中,实际上检索整个表格两次,即使经过优化,然后使用Linq- to-Entities Min和Max获取结果:-()
Dim query = From book In books _ Group By key = book.Subject Into Group _ SELEct id = key,_ BookCount = Group.Count,_ @R_365_10586@lPrice = Group.Sum(Function(_book) _book.PricE),_ LowPrice = Group.Min(Function(_book) _book.PricE),_ HighPrice = Group.Max(Function(_book) _book.PricE),_ AveragePrice = Group.Average(Function(_book) _book.PricE)
尽管Aggregate子句实现似乎是一个问题.考虑来自Northwind的以下查询:
Aggregate o in orders into Sum(o.Freight),Average(o.Freight),Max(o.Freight)
这会发生3个数据库请求.前两个执行单独的聚合子句.第三个将整个表拉回到客户端,并通过Linq到对象在客户端上执行Max.
以上是大佬教程为你收集整理的vb.net – 由于每个into子句是单独执行的,是否存在致命的缺陷?全部内容,希望文章能够帮你解决vb.net – 由于每个into子句是单独执行的,是否存在致命的缺陷?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。