LINQ优化:将GroupBy换做Distinct

这样做也是没有办法的,我之前项目中,查询中这样写的分组

1
2
3
4
5
6
7
8
9
10
11
12
form t in db.Table
where t.state==true
group t by new
{
t.A,
t.B,
t.C
}
into p
select new{
...
}

导致的就是,数据表中不到1W行数据,经过分组后是752行,但是第一次查询要将近10秒。

这太不能容忍了,所以思来想去,只有更换为Distinct来解决。

1
2
3
4
5
(form t in db.Table
where t.state==true
select new{
...
}).Distinct();

感觉很好,不到1秒,只是微软对Distinct的支持不是很好,因为这个去重靠的是每个对象的比对,对象相同则去重,而无法对某一个字段去重,很遗憾。


LINQ优化:将GroupBy换做Distinct
https://oujun.work/2011/05/06/LINQ优化:将GroupBy换做Distinct.html
作者
欧俊
发布于
2011年5月6日
许可协议