所以我有一个问题,在排序我有一些数据。在Telerik Grid中,我有一个名为Requestor的列,显示一个人或单位(一群人)的名字。问题是,Requestor有两个来源可以从中获取数据。这是两个来源。排序数据问题
1.)RequestorId:这是一个名为Customer的表的外键。在这里,我存储了用户的所有数据,包括他们的全名。此字段可以为空btw。
2.)UnitId:这是称为Units的表的另一个外键。在这里,我储存了单位的所有数据,特别是他们的名字。此字段可以为空btw。
这里的逻辑:
//Entity class that contains all the data for my grid
var purchaseOrders = _purchaseOrders.GetPurchaseOrders();
//Key is Id of PurchaseOrders, Value is name of requestor
var dictionary = new Dictionary<int, string>();
foreach (var purchaseOrder in purchaseOrders)
{
if (purchaseOrder.requestorId != null)
dictionary.add(purchaseOrder.Requestor.Fullname);
else
dictionary.add(purchaseOrder.unit.Fullname);
}
dictionary.orderby(x => x.value).ToDictionary(x => x.Key, x.Value);
var tempPurchaseOrders = new List<PurchaseOrder>();
foreach (var item in dictionary)
{
tempPurchaseOrders.Add(purchaseOrders.Where(x => x.Id == item.Key).FirstOrDefault());
}
purchaseOrders = tempPurchaseOrders.AsQueryable();
return purchaseOrders;
这个逻辑返回基于什么我想做的事,然而,问题是它需要处理时间量的有序列表。处理需要1分钟。显然这太可怕了。无论如何要优化这个吗?在我返回电网后,我减少了电源,因为事先没有合理的方法来切断它。
任何帮助,将不胜感激。谢谢。
编辑:我发现我不再需要使用RequestName字段。这将数据限制在两个方面。尽管如此,还需要一分钟。
你要排序多少数据? – 2013-02-14 19:42:03
当前13.2k条记录。一旦完成我的项目,我会有更多的传入。最有可能的是另外1K左右,但是,我仍然想尽我所能平稳一切。 – IyaTaisho 2013-02-14 19:48:13
'dictionary.add'(小写)?有一个论点?关键是什么?你知道瓶颈在哪里吗?这不一定是排序。 – 2013-02-14 20:03:28