Estoy tratando de usar la función Multimapping de dapper para devolver una lista de ProductItems y Clientes asociados.
[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; }
}
Mi código elegante es el siguiente
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"
);
Esto funciona bien, pero parece que tengo que agregar la lista de columnas completa al parámetro splitOn para devolver todas las propiedades de los clientes. Si no agrego "CustomerName", devuelve nulo. ¿No entiendo bien la funcionalidad principal de la función de mapas múltiples? No quiero tener que agregar una lista completa de nombres de columna cada vez.