ホームページ > データベース > mysql チュートリアル > LINQを使用してSQLの「IN」ステートメントをレプリケートする方法は?

LINQを使用してSQLの「IN」ステートメントをレプリケートする方法は?

Patricia Arquette
リリース: 2024-12-30 21:32:11
オリジナル
885 人が閲覧しました

How to Replicate SQL's

SQL の "IN" ステートメントに相当する LINQ

この記事では、SQL の "IN" ステートメントをエミュレートする LINQ クエリを作成するタスクに取り組みます。 SQL "IN" ステートメントの動作。このクエリは、指定されたタグのリストに一致するアイテムを取得します。

アイテムをサポートする次のデータベース スキーマを想像してください。タグ付け:

アイテム

  • ItemId
  • ブランド
  • 名前
  • 価格
  • 状態
  • 説明
  • アクティブ

タグs

  • タグ ID
  • 名前
  • アクティブ

タグマップ

  • TagMapId
  • TagId
  • ItemId
  • アクティブ

問題ステートメント:
指定されたタグのリストに一致する項目を返す 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート