ホームページ >バックエンド開発 >C++ >単一の LINQ クエリで複数フィールド結合を実行するにはどうすればよいですか?

単一の LINQ クエリで複数フィールド結合を実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-24 02:19:10983ブラウズ

How to Perform Multi-Field Joins in a Single LINQ Query?

LINQ マルチフィールド接続: 複数のエンティティを効率的に関連付けます

LINQ では、複数のエンティティを接続する場合、通常は join キーワードを使用します。単一フィールド結合の方が一般的ですが、複数フィールド結合は単純な構文調整によって簡単に実装できます。

複数フィールド結合構文

単一の LINQ クエリで複数のフィールドを結合するための構文は次のとおりです:

<code class="language-csharp">from x in entity
join y in entity2 
   on new { x.field1, x.field2 } equals new { y.field1, y.field2 }</code>

new キーワードは、結合に使用される 2 つのエンティティのフィールドを結合する匿名型を作成します。等号の左側の匿名型は最初のエンティティの接続条件を表し、右側は 2 番目のエンティティの接続条件を表します。

これは例です:

<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 }</code>

このクエリは、field1 フィールドと field2 フィールドに基づいて entityentity2 を結合し、両方のエンティティの指定されたフィールドに一致するレコードを含む結合シーケンスを返します。

その他の注意事項

接続フィールドのデータ型には互換性がある必要があることに注意してください。さらに、join キーワードは内部結合を実行します。これは、フィールド値が一致するレコードのみが返されることを意味します。

左外部結合を実行する必要がある場合は、GroupJoin 演算子を使用できます。例:

<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 } into yGroup
   from y in yGroup.DefaultIfEmpty()</code>

このクエリは左外部結合を実行し、entity テーブル内に一致するレコードがない場合でも、entity2 テーブル内のすべてのレコードが返されるようにします。

以上が単一の LINQ クエリで複数フィールド結合を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。