以下代码需要5分钟才能在100,000行上运行。在我看来,这太疯狂了。我究竟做错了什么?
var query =
from foo in fooStuff.AsEnumerable()
group foo by foo.Field<Int64>("FooID") into g
select new
{
FooID = g.Key,
FooTier = g.Min(foo => foo.Field<int>("Tier"))
};
注意:在单声道上。
最佳答案
当您调用AsEnumerable()时,您正在实现所有实体,因此您的分组是在内存中完成的。尝试删除该部分,以便在数据库级别完成分组:
var query =
from foo in fooStuff
group foo by foo.FooID into g
select new
{
FooID = g.Key,
FooTier = g.Min(foo => foo.Tier)
};