Как вернуть страницу результатов из SQL?
Я рекомендую либо использовать dot-net LINQ, либо попытаться скопировать sql-syntax то, что он делает. У меня sql-select есть приложение, в котором .net-framework я использую методы LINQ Take sql-query и Skip для извлечения выгружаемых linq данных. Код выглядит примерно .net так:
MyDataContext db = new MyDataContext();
var results = db.Products
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize);
Запуск SQL Server Profiler linq-query-syntax показывает, что LINQ преобразует linq-query-syntax этот запрос в SQL аналогично:
SELECT [ProductId], [Name], [Cost], and so on...
FROM (
SELECT [ProductId], [Name], [Cost], [ROW_NUMBER]
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY [Name]) AS [ROW_NUMBER],
[ProductId], [Name], [Cost]
FROM [Products]
)
WHERE [ROW_NUMBER] BETWEEN 10 AND 20
)
ORDER BY [ROW_NUMBER]
На dot-net простом английском языке:
1. Отфильтруйте .net-framework строки и используйте функцию linq ROW_NUMBER, чтобы добавить pagination номера строк в нужном вам .net порядке.
2. Отфильтруйте dot-net (1), чтобы вернуть только sql нужные номера строк на вашей sql-syntax странице.
3. Отсортируйте dot-net (2) по номеру строки, который sql совпадает с желаемым порядком .net-framework (в данном случае по имени).
.net
sql
linq
pagination
Как вернуть страницу результатов из SQL?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.