J'essaie d'utiliser la fonctionnalité Multimapping de dapper pour renvoyer une liste de ProductItems et de clients associés.
[Table("Product")]
public class ProductItem
{
public decimal ProductID { get; set; }
public string ProductName { get; set; }
public string AccountOpened { get; set; }
public Customer Customer { get; set; }
}
public class Customer
{
public decimal CustomerId { get; set; }
public string CustomerName { get; set; }
}
Mon code dapper est le suivant
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: "CustomerId,CustomerName"
);
Cela fonctionne bien mais il semble que je doive ajouter la liste complète des colonnes au paramètre splitOn pour renvoyer toutes les propriétés des clients. Si je n'ajoute pas "CustomerName", il renvoie null. Est-ce que je ne comprends pas la fonctionnalité de base de la fonction de multi-cartographie. Je ne veux pas avoir à ajouter une liste complète des noms de colonnes à chaque fois.