Petapoco paging sql вид один ко многим - PullRequest
1 голос
/ 07 апреля 2019

Я пытаюсь создать страницу поиска с помощью разбивки на страницы для своего результата поиска.

Проблема: у меня есть таблица X. И в этой таблице 20 представлений таблицы «один ко многим» в моем представлении (sql),Для 1 строки в моей таблице X равен 200, иногда 100,50 строк в моем представлении (sql). Мне нужен весь этот результат для одной строки.

Наконец: Как я уже сказал, X таблица 1 строки может прийти с50 строк или 5 или 200 строк из вида как результат поиска.

Я использую asp.net, и моя база данных - SQL 2014. Я использую petapoco (orm).

Понятия не имеюдля просмотра страниц одним-многими.У вас есть предложение, чтобы решить мою проблему.

1 Ответ

0 голосов
/ 08 апреля 2019

Методы пейджинга PetaPoco перегружены, и вы можете предоставлять запросы как для выбора, так и для пейджинга Page<T> Page<T>(long page, long itemsPerPage, Sql sqlCount, Sql sqlPage);. Это позволяет вам делать пользовательские нумерации страниц.

Пагинация в PetaPoco - это, по сути, запрос для подсчета общего количества записей и запрос для извлечения текущей страницы. Вы могли бы сделать с T ExecuteScalar<T> и List<T> Fetch<T>, если вы хотите свернуть свои собственные.

Чтобы правильно разбить на страницы, вам нужно запросить родительскую таблицу, присоединяющуюся к дочерней таблице, и применить порядок. Когда у вас есть это, вы можете страницу. Однако родительская строка / информация будет дублироваться для каждого дочернего элемента, к которому вы присоединитесь. Если вы еще этого не сделали, я бы предложил метод, при котором вам нужно только выбрать и просмотреть дочерние строки. Таким образом, если бы это был пользовательский интерфейс, пользователь мог бы выбрать родительскую запись, тогда вы должны показать список дочерних записей. Это уменьшит сложность логики запроса.

...