2009-04-21 2 views
2

У меня есть эта функция, которая возвращает объект DataTable:Linq над DataTable с Пропустите() и .Снять() метод

Public Shared Function GetDataTable(ByVal PageSize As Integer, ByVal CurrentPagea As Integer) As DataTable 

    Dim dtData As New DataTable 
    dtData = da_Book_Content.GetDataContent() 

    'TODO : how to do data paging for dtData with Linq 

    Return dtData 

End Function 

на странице, я DataList для отображения данных. Он работает, но я хочу реализовать функцию поискового вызова. Как это сделать, чтобы я мог использовать функцию Linq lazy loading?

Спасибо.

ответ

9

Если DataTable уже идет откуда-то еще не LINQ2SQL, тогда Lazy Loading не вступает в игру.

Однако вы можете использовать LINQ2DataSets, чтобы воспользоваться методами расширения Skip() и Take().

Вы должны добавить ссылку на сборку: System.Data.DataSetExtensions.dll, то вы можете написать функцию, как это:

Public Shared Function GetDataTable(ByVal PageSize As Integer, ByVal CurrentPagea As Integer) As DataTable  
    Dim dtData As New DataTable = da_Book_Content.GetDataContent()  
    Dim query = dtData.AsEnumerable().Skip(CurrentPage).Take(PageSize)  
    Return query.CopyToDataTable() 
End Function 
+0

Я использовал этот Пропустите ((CurrentPage - 1) * PageSize) .Снять (PageSize). CopyToDataTable Большое спасибо. –

 Смежные вопросы

  • Нет связанных вопросов^_^