ASP.NET MVC4 Web アプリケーションを開発しています。データ アクセスにはエンティティ フレームワークを使用します。多くのページにはグリッドが含まれています。これらは、ページング、ソート、フィルタリング、およびグループ化をサポートする必要があります。パフォーマンスのために、グリッドのフィルタリング、並べ替え、ページングなどをデータベースで実行する必要があります (つまり、エンティティ フレームワークが適切な SQL クエリを生成する必要があります)。複雑な点の 1 つは、グリッド行を表すビュー モデルが、複数のビジネス エンティティ (テーブル) からのデータを組み合わせて構築されることです。これは、エンティティからデータを単純に取得することも、関連するビジネス エンティティの値に基づいて計算することもできます。このシナリオを処理するには、どのようなアプローチが推奨されますか? ウェブ上の良い例を知っている人はいますか? ほとんどの場合、ビュー モデルとビジネス ドメイン モデル間の単純なマッピングがあります。
28/11 更新 - グリッドとページングの初期表示をさらに明確にするために、パフォーマンスが向上しました。(以下のコメントを参照) 問題は、ユーザーがクリックした列が基になるビジネス テーブルの列に直接マップされない場合に、並べ替え/順序付け (およびフィルター処理) をどのように処理するかです。システムにはそれぞれ多数の列を持つ約 100 のグリッドがあり、列ごとにこれを処理しようとすると維持できないため、これを達成するための一般的な解決策を探しています。