Próbuję użyć funkcji Multimapping dapper, aby zwrócić listę ProductItems i powiązanych klientów.
[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; }
}
Mój elegancki kod jest następujący
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"
);
Działa to dobrze, ale wydaje mi się, że muszę dodać pełną listę kolumn do parametru splitOn, aby zwrócić wszystkie właściwości klientów. Jeśli nie dodam „CustomerName”, zwraca wartość null. Czy nie rozumiem podstawowych funkcji funkcji multimapping. Nie chcę za każdym razem dodawać pełnej listy nazw kolumn.