Я занимаюсь разработкой ASP.NET, где мне нужно отображать каждую покупку для каждой учетной записи в GridView (поэтому, в основном, каждая покупка связана с учетной записью).
Проблема в том, что у нас более 6000 поставщиков (при условии, что их можно отфильтровать до 1000, что обычно будет делать клиент), у каждой из которых будет несколько транзакций.Таким образом, вы можете себе представить, что время, необходимое для привязки этих данных, очень велико - фактически, время от времени SQL-сервер отключается.К сожалению, я не могу использовать подкачку страниц, так как все данные должны отображаться на одной странице.
То, что я делаю, похоже на код ниже (не на моей машине, поэтому не могу скопировать точно)
IEnumerable<Account> accs = (from s in dc.Accounts select s);
foreach (Account acc in accs)
{
IEumerable<Purchases> purchs = (from s in dc.Purchases where s.AccountID == acc.ID select s);
double 30daysval;
double 60daysval;
foreach (Purchases purch in Purchases)
{
TimeSpan span = DateTime.Now - purch.Timestamp;
if (span.Days <= 30)
{
30daysval += purch.Value;
//Add a row to the grid
}
else if (span.Days <= 60)
{
60daysval += purch.Value
//Add a row to the grid
}
}
//Add total row for that account
}
Есть ли более быстрый способ сделать это, возможно, используя соединения в LINQ или что-то еще?Я знаю, что это может показаться немного безнадежным, поскольку объем данных огромен, и что отображение нескольких тысяч строк на одной странице довольно абсурдно, но это то, что мне сказали сделать ...
Любые идеи или помощь будет высоко ценится