2011-11-23 58 views
1

我知道我的类型的其他各种问题这里列出的SO,但我想我的问题是从现有的一个或矿井的做​​法完全不同是不同的。分页中的GridView使用LINQ

我有一个表调用tblListing那里有108列,其中我有17万条记录,并不断增加。在我的管理部分,我拉出20列。但问题是它需要花费一分多时间在gridview中显示。

早些时候,我使用的数据表显示的记录,但页面和系统变得非常缓慢。现在我应用LINQ,并使用.Take(20),但它只显示20条记录。

所以我想在一个时间来加载20条记录,而分页。

请帮忙。任何示例代码或refence将受到高度赞赏。

+0

你真正得到使用LINQ更好的性能? LINQ非常有用,但它并不完全以性能而闻名。 –

+0

@JamesJohnson这有点误导 - LINQ本质上并没有任何其他代码迭代集合的性能更差。当然,写得不好的LINQ可能会有糟糕的表现 - 但非LINQ嵌套循环也是如此。 –

回答

4

貌似这篇文章Paging With LINQ可能对你会有所帮助:

下面是相关代码:

public static class PagingExtensions 
{ 
    //used by LINQ to SQL 
    public static IQueryable<TSource> Page<TSource>(this IQueryable<TSource> source, int page, int pageSize) 
    { 
     return source.Skip((page - 1) * pageSize).Take(pageSize); 
    } 

    //used by LINQ 
    public static IEnumerable<TSource> Page<TSource>(this IEnumerable<TSource> source, int page, int pageSize) 
    { 
     return source.Skip((page - 1) * pageSize).Take(pageSize); 
    } 
} 
+1

+1:我认为这将回答这个问题,但您应该包含一些相关的代码片段,以便您的答案不完全取决于链接的可用性。 –

+0

是不是为你:) –

+0

你是对的。我很懒,谢谢! –