如何使用ActiveRecord过滤SubSonic 3.0中的GetPaged

时间:2011-02-22 21:07:31

标签: c# subsonic subsonic3

我正在尝试使用SubSonic 3.0过滤GetPaged()结果,但我找不到方法。
我尝试过使用以下内容:

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

这似乎不起作用,我得到一个无法转换错误,这将违背分页的原因,因为我将从数据库中提取整个列表。

如果有人有方法使用SubSonic 3.0检索已过滤的分页列表,我们将不胜感激!

提前致谢。

1 个答案:

答案 0 :(得分:1)

在关于subsoinc的问题中,你应该总是说你是使用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>();