LINQ 式の動的フィルタ構築をシンプルにする Expression Tree ラッパー

複雑な検索条件を LINQ の Where に直書きすると、論理積・論理和・括弧が入り組んで可読性が著しく低下することがある。特に日付範囲の判定など、一行に収まらないケースでは意図が把握しにくくなる。 以下はその典型的な例。入院患者の投薬スケジュールを取得する際、開始日時と終了日時の間に含まれるレコードを抽出している。 public async Task<List<PatientM ...

9月15日 07:45 投稿

動的LINQ述語の構築手法

キーワード検索のような柔軟なフィルタリングをLINQクエリで実現する際、条件を実行時に組み立てる必要がよく生じる。例えば、複数のキーワードのうち「いずれか」に一致するレコードを取得したい場合、単純なWhereチェーンでは対応できない。 このようなケースでは、式ツリー(Expression Tree)を動的に構築し、OR条件やAND条件をプログラムで合成するのが効果的である ...

7月9日 17:43 投稿

ASP.NET C#でメッセージキューを使用した高同時接続処理(Xiaomiスマートフォン購入例)

Webアプリケーションが高同時接続を処理する際には、ハードウェアの拡張やプログラムの最適化に加え、並列処理を逐次処理に変換するアプローチも有効です。この手法はデータベースロックやメッセージキューの実装でよく用いられ、処理遅延のデメリットはあるものの、コスト削減という利点があります。 現象の再現 在庫商品テーブルの作成 CREATE TABLE [dbo].[stock_item]( ...

6月7日 16:25 投稿