Обработка больших данных с помощью Linq

250
01 июня 2017, 06:09

Есть база данных около 500000 записей. Я ее вывел, через jquery datatables, на вебморду.

Выглядит так.

Теперь я делаю фильтры для этой таблицы. Но ее нужно лимитить при поиске, иначе виснет база, начинает обрабатывать запрос очень долго. Именно когда делаю Count() результатов.

Поэтому логичнее делать лимит, отрабатывает быстрее. Сделал к примеру 5000 записей, но незнаю как сделать проверку, если к примеру в результате запроса будет больше 5000 записей, то брать только 5000 иначе показывать необходимый результат. Подскажите как.

Вот мой код, который есть сейчас

public class ResultSet
{

    public int Count(List<string> columnFilters)
    {
        if (!columnFilters.All(x => string.IsNullOrWhiteSpace(x)))
        {
            return 5000;
        }
        using (OwlEntities dc = new OwlEntities())
        {
            return dc.books.OrderBy(x => x.id).Count();
        }
    }
    public List<books> FilterResult(List<string> columnFilters, int start, int length)
    {
        string book_select = columnFilters[2];
        string book_name = columnFilters[3];


        List<books> result = null;
        if (!columnFilters.All(x => string.IsNullOrWhiteSpace(x)))
        {
            using (OwlEntities dc = new OwlEntities())
            {
                result = dc.books.OrderBy(x => x.id).Where(x => x.name == book_name.ToLower()).Skip(start).Take(length).ToList();
            }
        }
        else
        {
            using (OwlEntities dc = new OwlEntities())
            {
                result = dc.books.OrderBy(x => x.id).Where(x => x.id > start).Take(length).ToList();
            }
        }

        return result;
    }
}
READ ALSO
Как получить результат запроса COUNT(*)

Как получить результат запроса COUNT(*)

Не знаю, откуда получить нужное мне значениеМетод ниже

310
Вывести несколько таблиц из DataSet на DataGrid

Вывести несколько таблиц из DataSet на DataGrid

Есть WPF приложение, в классе DAL которого реализуется чтение данных из БД и запись полученной таблицы в DataSet, в класс StorageТаблицы точно попадают...

245
C# WinForms — Как правильно парсить json?

C# WinForms — Как правильно парсить json?

Пишу программу с VK Api, делал GET запрос, далее возникли проблемы с парсингом jsonКогда запускаю программу ничего не отображается

288
Как, сортируя один массив в случайном порядке, отсортировать еще один в точно таком же порядке?

Как, сортируя один массив в случайном порядке, отсортировать еще один в точно таком же порядке?

Сортирует значения какого-нибудь List в случайном порядкеА как сделать так, чтобы List2 отсортировался в точно таком же порядке?

271