Maison > développement back-end > C++ > Comment puis-je utiliser correctement le multimapping de Dapper pour récupérer toutes les propriétés des clients ?

Comment puis-je utiliser correctement le multimapping de Dapper pour récupérer toutes les propriétés des clients ?

Linda Hamilton
Libérer: 2024-12-31 22:49:09
original
612 Les gens l'ont consulté

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

Utilisation appropriée du multimapping dans Dapper

Le multimapping est une fonctionnalité de Dapper qui permet de renvoyer plusieurs types d'objets à partir d'une seule requête. Pour l'utiliser, fournissez une fonction de mappage qui attribue les données aux objets correspondants.

Dans votre exemple, vous essayez de mapper les ProductItems et les Customers à partir de la requête :

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;
);
Copier après la connexion

Cependant , vous rencontrez des problèmes pour renvoyer toutes les propriétés des clients. En effet, le paramètre splitOn indique les colonnes qui séparent deux objets. Si vous ne spécifiez pas CustomerName, Dapper suppose qu'il se trouve à la fin de l'ensemble de résultats et lui attribue la valeur null.

Pour résoudre ce problème, assurez-vous que CustomerId est spécifié en premier dans splitOn et que CustomerName est en deuxième. Cela divisera correctement l’ensemble de résultats. Toutefois, si l'ordre des colonnes dans le tableau change, cela peut entraîner des noms de clients nuls.

Remarque : Si l'ensemble de résultats comporte plusieurs points de partage, répertoriez-les dans un format délimité par des virgules. . Dapper divisera l'ensemble de résultats en plusieurs objets en fonction de ces points.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal