Как отфильтровать GetPaged в SubSonic 3.0 с помощью ActiveRecord - PullRequest
0 голосов
/ 23 февраля 2011

Я пытаюсь отфильтровать результат GetPaged () с помощью SubSonic 3.0, но мне не удалось найти способ.
Я пытался использовать следующее:

var list = Class.Find(filter);
var paged = new SubSonic.Schema.PagedList<Class>(list, 1, 10);

Похоже, это не работает, я получаю сообщение об ошибке «Не удалось преобразовать», и это противоречит причине подкачки, поскольку я извлекаю весь список из базы данных.

Если у кого-то есть метод для получения отфильтрованного списка с использованием SubSonic 3.0, он будет очень благодарен!

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

1 Ответ

1 голос
/ 23 февраля 2011

В вопросе, касающемся вложенных ресурсов, вы всегда должны указывать, используете ли вы ActiveRecord, LinqTemplates или SimpleRepository, что упрощает поиск подходящего примера.

Предполагается, что вы используете ActiveRecord, вы можете использовать подход linq.:

int page = 0;
int pageSize = 10;

var query = from c in Class.All()
            orderby c.Name
            select c;

var totalPages = (int)(query.Count() / pageSize) + 1;

var paged = query.Skip(page*pageSize).Take(pageSize);

foreach(var item in paged)
    Console.WriteLine(item.Name);

или с помощью QueryTool:

var db = new YourDB();
var result = db.Select.From<Class>()
               .Paged(page, pageSize)
               .ExecuteTypedList<Class>();
...