ホームページ > バックエンド開発 > C++ > Dapper のマルチマッピングを正しく使用してすべての顧客プロパティを取得するにはどうすればよいですか?

Dapper のマルチマッピングを正しく使用してすべての顧客プロパティを取得するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-31 22:49:09
オリジナル
611 人が閲覧しました

How Can I Correctly Use Dapper's Multimapping to Retrieve All Customer Properties?

Dapper での適切なマルチマッピングの使用法

マルチマッピングは、単一のクエリから複数のオブジェクト タイプを返すことができる Dapper の機能です。これを使用するには、対応するオブジェクトにデータを割り当てるマッピング関数を提供します。

この例では、クエリから ProductItems と Customers をマッピングしようとしています。

var sql = @"select * from Product p
            inner join Customer c on p.CustomerId = c.CustomerId 
            order by p.ProductName";

var data = con.Query<ProductItem, Customer, ProductItem>(
    sql,
    (productItem, customer) => {
        productItem.Customer = customer;
        return productItem;
    },
    splitOn: &quot;CustomerId,CustomerName&quot;
);
ログイン後にコピー

ただしすべての顧客プロパティを返す際に問題が発生しています。これは、splitOn パラメータが 2 つのオブジェクトを区切る列を示しているためです。 CustomerName を指定しない場合、Dapper はそれが結果セットの最後にあるとみなして null を割り当てます。

これを解決するには、CustomerId が SplitOn で最初に指定され、CustomerName が 2 番目に指定されていることを確認します。これにより、結果セットが正しく分割されます。ただし、テーブル内の列の順序が変更されると、顧客名が null になる可能性があります。

注: 結果セットに複数の分割ポイントがある場合は、それらをカンマ区切り形式でリストします。 。 Dapper は、これらのポイントに基づいて結果セットを複数のオブジェクトに分割します。

以上がDapper のマルチマッピングを正しく使用してすべての顧客プロパティを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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