Хобрук: Ваш путь к мастерству в программировании

PagedList не понимает при использовании IQueryable нового типа объектов

Я использую Entity framework и у меня есть

IQueryable<Doc> docs

где Doc — это модель, соответствующая моей таблице Doc в базе данных. Я хочу использовать Pagedlist для нумерации страниц в представлении, мне нужно передать в представление коллекцию Iqueryable<Docinfo>, где Docinfo — другой тип, а объект этого типа инициализируется из Doc,
я использую его, чтобы не передавать все информация Doc для представления, Docinfo содержит только некоторые свойства Doc. Вот код, как я использую PagedList

IPagedList<Doc> pagedDocs = docs.ToPagedList(pageNumber, PageSize);

Теперь pagedDocs имеет следующую информацию

Count: 11
FirstItemOnPage: 1
HasNextPage: true
HasPreviousPage: false
IsFirstPage: true
IsLastPage: false
LastItemOnPage: 11
PageCount: 1920
PageNumber: 1
PageSize: 11
Subset: Count = 11
TotalItemCount: 21120

Теперь у меня есть только 11 элементов, извлеченных из базы данных, и все они имеют тип Doc. Как я могу создать Iqueryable<Docinfo> из этих 11 объектов и передать их в pagedList как подмножество? Я пытался сделать что-то вроде этого

IPagedList PagedList = pagedDocs.ToList().Select(m=>new DocInfo(m)).ToPagedList(pageNumber, PageSize);

но после него PagedList содержит следующую информацию

Count: 11
FirstItemOnPage: 1
HasNextPage: false
HasPreviousPage: false
IsFirstPage: true
IsLastPage: true
LastItemOnPage: 11
PageCount: 1
PageNumber: 1
PageSize: 11
Subset: Count = 11
TotalItemCount: 11

Как видите, таким образом у меня всегда будет только одна страница в представлении, потому что я потерял информацию о PageCount,TotalItemCount и т.д.



Ответы:


1

Почему вы не можете просто работать с DbContext без применения IPagedList

IUnitOfWork<YourContext> _uOf;

var context = _uOw.Context

с помощью контекста вы можете использовать любой метод, который хотите

09.08.2018
  • Если честно, я не знаком с интерфейсом IUnitOfWork. Я изучу его, но думаю, что мне придется внести много изменений в свой проект, чтобы избавиться от Pagedlist 09.08.2018
  • Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..