MembershipUserCollection到IEnumerable <membershipuseruser>用于分页</membershipuser>

时间:2012-03-03 09:08:23

标签: asp.net asp.net-mvc-3

我在asp.net MVC 3应用程序中工作。我想显示一个用户列表。我在存储库中创建了一个函数,如下所示:

 internal MembershipUserCollection GetUsers() {
           return Membership.GetAllUsers();
       }

我需要IEnumerable对象,因为我也想做分页。如何使用MembershipUserCollection进行分页或将MembershipUserCollection转换为IEnumerable

请建议

1 个答案:

答案 0 :(得分:5)

Membership.GetAllUsers()的名称暗示您的分页效率不高。如果要实现高效的分页,理想情况是在数据库级别,您应该使用following overload,它允许您传递当前页面索引和所需的页面大小:

internal IEnumerable<MembershipUser> GetUsers(
    int pageIndex, 
    int pageSize, 
    out int totalRecords
) 
{
    return Membership
        .GetAllUsers(pageIndex, pageSize, out totalRecords)
        .Cast<MembershipUser>();
}

该方法返回记录总数,以便您以后可以在UI级别正确实现分页。