もう興味がないかもしれませんが、それでも答えを投稿すると思いました。
私はLinq2SqlとObjectDataSourceを使用していますが、ページングと並べ替えは非常にうまく機能します。
ObjectDataSourceとして使用するクラスを実装しました。これには、 Linq2SQLクエリを使用してDBからデータを取得するビジネスレイヤーを呼び出すSelectメソッドとCountメソッドがあり、EntityFrameworkと同様である必要があります。selectメソッドは、最初のアイテムインデックス、ページサイズ、および並べ替え式をパラメーターとして自動的に取得します。
public List<EntityClass> Select(int startIndex, int pageSize, string sortBy) {}
public int Count() {}
ASPXでは、データソースは次のように構成されます。
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="Select" EnablePaging="true"
StartRowIndexParameterName="startIndex"
MaximumRowsParameterName="pageSize"
SortParameterName="sortBy" SelectCountMethod="Count" >
</asp:ObjectDataSource>
SelectメソッドとCountメソッドは、Linqクエリを使用してDBからデータを取得します。Skip()、Take()、Orderby()メソッドを使用しています。OrderByが文字列の並べ替え式を受け入れるには、DynamicLinqを使用します。コーディングすることはあまりありません。データバインディング、ページング、および並べ替えは自動的に機能します。
興味があれば、私のコードの詳細を投稿できます。