Mappage de plusieurs colonnes pour taper dans Dapper

c# dapper

Question

J'essaie de cartographier select comme ceci:

SELECT id, total, total_currency FROM sometable

l'identifiant est VARCHAR, le total est numérique, la devise est un caractère (3)

Dans l'entité comme ceci:

class MyEntity
{
     string Id { get; set; }
     Money total { get; set; }
}

L'argent a bien sûr un constructeur avec signature (decimal amount, string currencyId) . Comment est-ce que j'y parviens dans Dapper?

Réponse populaire

Vous devrez utiliser le mappage multiple si vous avez une relation d'entité parent / enfant, re: Money est une propriété enfant de MyEntity :

// assumes connection has already been created

string sql = "SELECT id, total, total_currency FROM sometable";

IEnumerable<MyEntity> result = conn.Query<MyEntity, Money, MyEntity>(
    sql,
    (entity, money) => { entity.Money = money; return entity; },
    spliton: "total");

Pour une explication plus détaillée, voir: Utilisation correcte du multimédia dans Dapper

Si vous avez besoin de paramètres personnalisés pour la classe Money , il est recommandé d'utiliser simplement la méthode générique et de projeter le résultat dynamique dans votre résultat réel. Voir: Appeler un constructeur personnalisé avec Dapper?



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi