LINQ COUNT多列

LINQ COUNT多列,第1张

LINQ COUNT多列

这是我想出的解决方案。请注意,它与@OdeToCode提出的解决方案非常接近(但使用VB语法),但有一个主要区别:

Dim temp = _    (From t In context.MyTable _     Group t.f1, t.f2, t.f3 By t.title Into g = Group _     Select title, g).ToListDim results = _    From t In temp _    Select t.title, _        f1_count = t.g.Count(Function(x) If(x.f1, False)), _        f2_count = t.g.Count(Function(x) If(x.f2, False)), _        f3_count = t.g.Count(Function(x) If(x.f3, False))

第一个查询进行分组,但是ToList从服务器按原样获取分组的数据。在这里消除计数可以防止生成的SQL语句为每个计数生成子SELECT。我在本地第二个查询中进行计数。

这行得通,因为我知道第一个查询将返回可管理的行数。如果要返回数百万行,我可能不得不朝另一个方向前进。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5620543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存