所以我有一個問題,在排序我有一些數據。在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