ฉันกำลังพยายามใช้คุณลักษณะ Multimapping ของ dapper เพื่อส่งคืนรายการ ProductItems และลูกค้าที่เกี่ยวข้อง
[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; }
}
รหัส dapper ของฉันมีดังนี้
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"
);
วิธีนี้ใช้งานได้ดี แต่ดูเหมือนว่าฉันต้องเพิ่มรายการคอลัมน์ทั้งหมดลงในพารามิเตอร์ splitOn เพื่อส่งคืนคุณสมบัติของลูกค้าทั้งหมด ถ้าฉันไม่เพิ่ม "CustomerName" มันจะส่งกลับค่าว่าง ฉันไม่เข้าใจการทำงานหลักของฟีเจอร์มัลติแมป ฉันไม่ต้องการเพิ่มรายชื่อคอลัมน์ทั้งหมดทุกครั้ง