【发布时间】:2012-09-17 16:15:26
【问题描述】:
不确定这是否是一个正确的问题,但我想我会试一试,看看会弹出什么样的答案。
我们正处于开发阶段,我们正在进行用户验收测试,用户发现有点缺乏的一件事是在选择搜索结果后加载选项卡的速度.我已经实现了日志记录方法,并提出了一些导致感知缓慢的方法和数据检索/操作的罪魁祸首。下面是最大的问题。该方法的目的是选择针对一个保单或任何子保单收到的所有付款,按到期日和付款日期将它们组合在一起,然后返回一个 GroupedClass,它将为整个保单支付的金额相加。我想知道是否有任何方法可以提高效率。我注意到,在使用这些旧的 UniVerse 数据时,如果在使用之前不强制转换 .AsEnumerable(),事情往往会崩溃:
var mc = new ModelContext();
var policy = mc.Polmasts.Find("N345348");
var payments =
mc.Paymnts.Where(p => p.POLICY.Contains(policy.ID)).GroupBy(p => new { p.PAYDUE_, p.PAYPD_ }).Select(
grp =>
new GroupedPayments
{
PAYPD_ = grp.Key.PAYPD_,
PAYDUE_ = grp.Key.PAYDUE_,
AMOUNT = grp.Sum(a => a.AMOUNT),
SUSP = grp.Sum(a => a.SUSP)
}).AsEnumerable().OrderByDescending(g => g.PAYDUE_).Take(3);
【问题讨论】:
-
对不起,我其实不熟悉这个词?自学成才,第一份工作等等。
-
如果你想更准确地了解 CPU 时间的去向,试试这个工具,你可以下载一个免费的小道,非常棒 - red-gate.com/products/dotnet-development/…
-
尝试不使用 Find 而使用 mc.Polmast.Where(x => x.FK == "N345348").First();它为我解决了性能问题。
-
@tschmit007 在实际应用中它是一个 .Where 需要一个文本框输入,我只是将 Find 用于我自己的故障排除应用程序