Dapper でマルチマッピングを正しく利用する
Dapper のマルチマッピング機能は、SQL クエリから複雑なデータ構造をマッピングするための強力なツールです。ただし、問題を回避するには、この機能を適切に使用することが重要です。
提供されたコードでは、splitOn パラメーターは、マップされたオブジェクトが分割される列のみを指定する必要があります。デフォルトでは、Dapper は分割ポイントとして「Id」を想定します。さまざまなオブジェクトに複数の分割ポイントを指定するには、それらをカンマ区切りのリストとして指定する必要があります。
たとえば、指定されたシナリオでは:
var data = con.Query<ProductItem, Customer, ProductItem>( sql, (productItem, customer) => { productItem.Customer = customer; return productItem; }, splitOn: "CustomerId" );
splitOn パラメーターは正しく「CustomerId」を指定します。 " を ProductItem オブジェクトと Customer オブジェクトの間の分割点として使用します。したがって、回答で提供されているコードが示すように、splitOn リストから "CustomerName" を省略しても、顧客名が null になることはありません。
SQL 結果セット内の列の順序が一致する必要があることに注意することが重要です。正しいマッピングを保証するために、splitOn パラメータで指定された順序。列の順序が変更された場合は、それに応じて SplitOn パラメータを調整する必要があります。
以上がマルチマッピングで Dapper の `splitOn` パラメータを正しく使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。