0
我有兩個類小巧玲瓏多映射結果
public class Customer
{
public int CustomerId { get; set;}
public string CustomerName { get; set; }
}
public class Order
{
public int OrderId { get; set; }
public int CustomerId { get; set; } //BuyerCustomer
public int CustomerSecondId { get; set; } //ReceiverCustomer
public Customer BuyerCustomer { get; set; }
public Customer ReceiverCustomer { get; set; }
}
這裏是我的查詢將看起來像
SELECT a.*, b.*, c.* FROM dbo.PRODUCTS_ORDER a
INNER JOIN dbo.CUSTOMER b ON a.CustomerId=b.CustomerId
INNER JOIN dbo.CUSTOMER c ON a.CustomerSecondId=b.CustomerId
小巧玲瓏實現..
List<Order> order= null;
order= (List<Order>)dapperconnection.Query<Order, Customer, Customer, Order>(sql,
(order, customer1,customer2) =>
{
order.BuyerCustomer = customer1;
order.ReceiverCustomer = customer2;
return order;
}, splitOn: "CustomerId,CustomerSecondId ");
我得到的結果是不完整,只有RecevierCustomer被填充,而BuyerCustomer根本不包含任何值。
由於我在查詢中使用了兩次CustomerId,所以它看起來像dapper一樣困惑。 有沒有任何解決方法,而不必改變我的客戶類?
哦,遺憾的錯字。我修好了它。讓我試着做一些測試。謝謝。 – Derstine
爲什麼我需要從Split中刪除CustomerSecondId?我真的不明白,因爲我真的需要它的加入。 – Derstine
CustomerSecondId是訂單的一部分。當您查看SQL查詢結果時,您有Order和Customer,Customer,那麼我們只需按CustomerId劃分兩個客戶記錄。我將編輯最後一點。 –