LINQ での複数フィールド結合
LINQ2DataSet で接続操作を実行する場合、複数の異なるフィールドに接続条件を指定して、より複雑かつ正確なデータ取得を実現できます。
次の構文を使用するだけで、1 つのステートメントで複数のフィールドの結合を作成できます。
<code class="language-csharp">var result = from x in entity join y in entity2 on new { x.field1, x.field2 } equals new { y.field1, y.field2 } select new { x, y }; // or select specific fields</code>
この例では、join 句は 2 つのフィールド (field1 と field2) の同等性に基づいて、entity の行とentity2 の行を結合します。これにより、2 つのテーブルのデカルト積が作成され、where 句の追加条件を使用してフィルタリングできます。
この手法は等価結合 (等価比較) でのみ機能することに注意してください。非等価結合を実行する必要がある場合は、where 句に追加の条件を追加できます。
たとえば、テーブル ID を含む日付範囲クエリで結合を実行するには、次のコードを使用できます:
<code class="language-csharp">var result = from x in entity join y in entity2 on new { x.field1, x.field2 } equals new { y.field1, y.field2 } where x.StartDate >= startDate && x.EndDate <= endDate select new { x, y }; // or select specific fields</code>
このコードは、field1 と field2 が等しいことに基づいて、entity の行とentity2 の行を結合し、指定された日付範囲に基づいて結果をフィルターします。 select new { x, y }
x オブジェクトと y オブジェクトのすべてのプロパティを返すように選択することも、必要に応じて特定のプロパティを選択することもできます。
この方法を使用すると、複数フィールドの結合操作を効率的に実行して、より複雑なクエリ要件を満たすことができます。
以上がLINQ で複数フィールド結合を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。