Tôi đang cố gắng sử dụng tính năng Đa ánh xạ của dapper để trả về danh sách các Hạng mục sản phẩm và Khách hàng được liên kết.
[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ã dapper của tôi như sau
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"
);
Điều này hoạt động tốt nhưng tôi dường như phải thêm danh sách cột hoàn chỉnh vào tham số splitOn để trả về tất cả các thuộc tính khách hàng. Nếu tôi không thêm "CustomerName", nó sẽ trả về null. Có phải tôi không hiểu chức năng cốt lõi của tính năng đa ánh xạ. Tôi không muốn phải thêm danh sách tên cột đầy đủ mỗi lần.