LINQを動的に作成する式ツリー

業務システムでデータベースを使うコードを組んでいると、データの取得条件を動的に変更したいことがよくある。そういうときにLINQで組んでいるとつらい。式ツリーを用いてLINQの条件を動的に変更できるすべを覚えておけば楽だ。


データベースを使うシステムを作っていると、データの一覧を表示するケースが当たり前のように出てくる。そして、選択したデータのみを表示したいケースも当然ながら出てくる。SQL Serverのクエリーを直接書くならIN句を使えばいいが、LINQ to EntitiesなどでLINQでデータを取得しているときに動的に条件を変えるのはややこしい。

ややこしいがやらなくてはいけない以上はやるしかない。式ツリーを使って条件を動的に生成すれば実現できる。今回は一覧データの中から特定のデータのみを取得するケースを想定して記述する。

コードが横に長くなりがちなので、コツとしては推論型varを活用して変数名をできるだけ短くすると見やすくなる。

カテゴリーC#