SQL の "IN" ステートメントに相当する LINQ
この記事では、SQL の "IN" ステートメントをエミュレートする LINQ クエリを作成するタスクに取り組みます。 SQL "IN" ステートメントの動作。このクエリは、指定されたタグのリストに一致するアイテムを取得します。
アイテムをサポートする次のデータベース スキーマを想像してください。タグ付け:
アイテム
タグs
タグマップ
問題ステートメント:
指定されたタグのリストに一致する項目を返す LINQ クエリを作成します。たとえば、必要なタグが 2、3、4、7 の場合、クエリはそれらのタグを持つアイテムを取得する必要があります。
解決策:
これは、次のコマンドを使用して実現できます。 LINQ クエリ:
var TagIds = new[] { 2, 3, 4, 7 }; var q = from map in Context.TagMaps where TagIds.Contains(map.TagId) select map.Items;
クエリは、まず整数配列 TagIds を目的のタグ ID で初期化します。次に、Contains メソッドを使用して、TagMaps テーブルとこの配列を結合します。これにより、TagMaps の TagId 列が TagIds 配列に存在するかどうかがチェックされます。
このクエリは、SQL ステートメントにパラメータ化された "IN" 句を生成し、効率性を確保します。実行。これは基本的に次の SQL に変換されます:
SELECT Items FROM TagMaps WHERE TagId IN (2, 3, 4, 7);
以上がLINQを使用してSQLの「IN」ステートメントをレプリケートする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。