Я использую 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
и т.д.
IUnitOfWork
. Я изучу его, но думаю, что мне придется внести много изменений в свой проект, чтобы избавиться отPagedlist
09.08.2018