Итак, у меня есть небольшая проблема при сортировке данных, которые у меня есть. В сетке Telerik у меня есть столбец «Requestor», в котором отображается имя человека или группы (группа людей). Проблема заключается в том, что у Requestor есть два источника, из которых он может получить свои данные. Вот два источника.Проблема сортировки данных
1.) RequestorId: Это внешний ключ к таблице Customer. Здесь я храню все данные для пользователя, включая их полное имя. Это поле может быть нулевым.
2.) UnitId: Это другой внешний ключ для таблицы под названием Units. Здесь я храню все данные для единиц, особенно их имена. Это поле может быть нулевым.
Вот логика:
//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. Это ограничивает данные в двух областях. Тем не менее, минутка для обработки.
Сколько данных вы сортируете? –
В настоящее время записи 13,2 тыс. Записей. У меня есть больше входящих, как только я завершу свой проект. Скорее всего, еще 1k или около того, но все же, я хочу сгладить все, что могу. – IyaTaisho
'dictionary.add' (нижний регистр)? С одним аргументом? Каков ключ? И знаете ли вы, где узкое место? Это не обязательно сортировка. –