IQueryable (не общий): отсутствует счетчик и пропуск? он работает с IQueryable

У меня есть метод расширения, который мне очень помог мне дать ... он выполняет orderby на IQueryable. .. но я хотел, чтобы один выполнял обычный IQueryable (не общий)

Вот код, счетчик, пропуск и, я думаю, Take отсутствуют.

   public static IQueryable GetPage(this IQueryable query,
         int page, int pageSize, out int count)
    {
        int skip = (int)((page - 1) * pageSize);

        count = query.Count(); //COUNT DOESN'T EXIST
        return query.Skip(skip).Take((int)pageSize); // NEITHER SKIP
    }

Вот и он отлично работает без ошибок.

    public static IQueryable<T> GetPage<T>(this IQueryable<T> query,
       int page, int pageSize, out int count)
    {
        int skip = (int)((page - 1) * pageSize);

        count = query.Count();
        return query.Skip(skip).Take((int)pageSize);
    }

Есть идеи, как я могу это обойти? Я не хочу менять свои возвращаемые типы, так как он работает отлично, и у меня есть другой метод расширения, называемый ToDataTable, и он также работает с необщим IQueryable ..

Есть ли обходной путь?

Заранее спасибо

РЕДАКТИРОВАТЬ

Я называю это так в существующем IQueryable

 IQueryable<Client> gen = null;
 IQueryable nongen = null;

 var test = gen.GetPage();  //COMPILES!

 var test 1 = non.GetPage(); // Doesn't compile because GETPAGE
                             // for non generic is broken as it has 
                             // invalid methods like COUNT and SKIP etc.

. Я попытался удалить неуниверсальную версию GetPage, но затем мой не общий IQueryable не сделал этого. Для бизнес-требований это необходимо сделать с помощью KeyPress, чтобы символу просто не разрешалось даже появляться в ...

Проблема:

  • Ограничьте допустимые символы во вводе HTML только до az AZ.
  • Для бизнес-требования: это необходимо сделать с помощью KeyPress, чтобы символ просто не мог даже появляться во вводе.
  • Табуляция, ввод, стрелки, возврат, сдвиг - все разрешены. Пользователь должен иметь возможность свободно входить и выходить из текстового поля, удалять символы и т. Д.

Это отправная точка моего кода ...

var keyCode = (e.keyCode ? e.keyCode : e.which);

Однако каждое значение, которое я получаю в keyCode не соответствует ни одной диаграмм символов, которые я видел в Интернете. Например, символ «h» дает мне код возврата 104.

Отличается ли KeyCode от CharCode? Какой код содержит управляющие символы? Мне нужно преобразовать?

Как я могу ограничить ввод до az AZ и разрешить ключи, которые мне нужны в JavaScript?

42
задан Michał Perłakowski 7 February 2016 в 04:30
поделиться