ホームページ > バックエンド開発 > C++ > Dapper のマルチマッピングはデータベース クエリ結果を複数のオブジェクトに分割する方法を教えてください。

Dapper のマルチマッピングはデータベース クエリ結果を複数のオブジェクトに分割する方法を教えてください。

Patricia Arquette
リリース: 2025-01-04 09:36:35
オリジナル
536 人が閲覧しました

How Does Dapper's Multimapping Handle Splitting Database Query Results into Multiple Objects?

Dapper でのマルチマッピング

Dapper でマルチマッピングを使用する場合、データベース クエリの結果を複数のオブジェクトまたはオブジェクト タイプにマッピングすることを目的とします。

の正しい使い方マルチマッピング

Dapper でマルチマッピングを適切に利用するには:


  • テーブルの列に一致するプロパティを使用してオブジェクト クラスを定義します。
  • データベーステーブルを表すクラスに「Table」属性を指定します。 (例: [Table("Product")])

  • 適切なジェネリック型引数を指定して Query メソッドを使用し、結果をオブジェクト クラスにマップします。 (例: Query())

コードでは、「splitOn」の完全な列リストを指定する必要がありました。これは、単一のオブジェクトを複数のオブジェクトにマップしようとしたためです。マルチマッピングは、それぞれの個別のオブジェクト タイプが結果セット内の異なる列で始まることを前提としています。

分割ポイント

「splitOn」パラメータは、マッピングが行われる分割ポイントを定義します。 1 つのオブジェクトが終了し、次のオブジェクトのマッピングが始まります。デフォルトでは、これはオブジェクトの "Id" プロパティに設定されます。

たとえば、次の表では:

ProductID | ProductName | AccountOpened | CustomerId | CustomerName
---------------------------------------   -------------------------
ログイン後にコピー

"CustomerId" のデフォルトの "splitOn" 値は次のようになります。 「ProductItem」オブジェクトのマッピングが「CustomerId」で終わり、「Customer」オブジェクトのマッピングが「CustomerId」で始まることを示します。 "CustomerId."

必然

結果セット内の列の順序は、予期されるマッピングと一致している必要があることに注意することが重要です。テーブル内で「CustomerId」と「CustomerName」の順序が逆になっている場合は、「splitOn」パラメータを調整して補正する必要があります。調整しないと null 値が返されます。

以上がDapper のマルチマッピングはデータベース クエリ結果を複数のオブジェクトに分割する方法を教えてください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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