質問: データベースのテーブルにページ番号を付ける方法があります。部分のページ付けは重要ではないので、唯一の焦点は部分のフィルタリングです。 Entity Framework CoreのWhereメソッドがパラメーターとして`Expression>`を要求するため、 `T`は実際のモデルであり、有効なビューモデルを要求するコントローラー内のアクションがあるため、そのビューモデルを使用して`Expression>`を生成するにはどうすればよいですかそのビューモデルから`Expression>` ? ビューモデルの入力パラメータに基づいてテーブルをフィルタリングできるようにしたいと思います。
回答: まあ、基本的には`Expression>`です。 EFに渡すフィルターを作成します。以下の情報はあなたが始めるのに十分すぎるほどです。 次のようなクラスがあるとします。これは、ViewModelだけでなく、どのクラスでもかまいません。 ``` public class Person { public int Id {get;set;} public string Name {get;set;} } ``` 式は次のようになります。 ``` Expression> predicate = p => p.Name == "Some name"; db.People.Where(predicate); // How you would use it in a db context ``` *LinqKit*を使用するこのリンクを表示することもできます。LinqKitを使用する必要はありませんが、いくつかの良い例がありますhttp://www.albahari.com/nutshell/linqkit.aspx > ビューモデルの入力パラメータに基づいてテーブルをフィルタリングできるようにしたいと思います。 > > 上記が必要なので、 `predicate`追加して、それを`Where,Any,Count...`に1つとして渡すことができます。フィルターに追加する方法については、ここで多くのテクニックを見ることができます: 式に追加する方法 追加する私のお気に入りの方法は、linqkit述語ビルダーを使用することです。 上記のリンクでは、述語ビルダーを含む多くの手法が紹介されています。