2011-11-23 60 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

你是對的。我很懶,謝謝! –