Maison > développement back-end > C++ > Comment le multimapping de Dapper gère-t-il le fractionnement des résultats des requêtes de base de données en plusieurs objets ?

Comment le multimapping de Dapper gère-t-il le fractionnement des résultats des requêtes de base de données en plusieurs objets ?

Patricia Arquette
Libérer: 2025-01-04 09:36:35
original
536 Les gens l'ont consulté

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

Multimapping dans Dapper

Lorsque vous utilisez le multimapping avec Dapper, vous souhaitez mapper le résultat d'une requête de base de données à plusieurs objets ou types d'objets.

Utilisation correcte du multimapping

Pour utiliser correctement le multimapping dans Dapper :


  • Définissez vos classes d'objets avec des propriétés qui correspondent aux colonnes du tableau.

  • Spécifiez l'attribut "Table" sur les classes représentant les tables de la base de données. (Exemple : [Table("Product")])

  • Utilisez la méthode Query avec les arguments de type générique appropriés pour mapper les résultats à vos classes d'objets. (Exemple : Query())

Dans votre code, vous deviez spécifier la liste complète des colonnes pour le "splitOn" paramètre car vous essayiez de mapper un seul objet à plusieurs objets. Le multimapping suppose que chaque type d'objet distinct commence à une colonne différente dans le jeu de résultats.

Point de partage

Le paramètre "splitOn" définit le point de partage où le mappage de un objet se termine et le mappage de l'objet suivant commence. Par défaut, ceci est défini sur la propriété "Id" de l'objet.

Par exemple, dans le tableau suivant :

ProductID | ProductName | AccountOpened | CustomerId | CustomerName
---------------------------------------   -------------------------
Copier après la connexion

La valeur "splitOn" par défaut de "CustomerId" serait indique que le mappage d'objets « ProductItem » se termine à « CustomerId » et que le mappage d'objets « Customer » commence à "CustomerId."

Corollaire

Il est important de noter que l'ordre des colonnes dans l'ensemble de résultats doit être cohérent avec le mappage attendu. Si l'ordre de "CustomerId" et "CustomerName" est inversé dans le tableau, vous devrez ajuster le paramètre "splitOn" pour compenser, sinon cela entraînera des valeurs nulles.

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