我试图尽可能地遵循Petapoco网站上的文档,但没有运气。
我已经修改了Customer
poco以取得List<Order> Orders {get; set;}
。我想查询客户并在每个客户对象中包含相关订单。
using (var db = new Database("NorthWind"))
{
var sql = Sql.Builder
.Select("*")
.From("Customers customers")
.LeftJoin("Orders orders").On("customers.CustomerID = orders.CustomerID")
.OrderBy("customers.CustomerID");
return db.Fetch<Customer, List<Order>, Customer>(
(c, o) => { c.Orders = o; return c; }, sql);
}
始终返回客户数据,但订单始终为空。想法?
答案 0 :(得分:0)
您的.LeftJoin
似乎没有客户订单。为什么不使用.InnerJoin
。通过使用(c, o) => { c.Orders = o; return c; }
,您将一个集合加入到我认为不可能的对象中。
将语法修改为以下内容:
return db.Fetch<Customer, Order, Order>(
(c, o) => { o.Customer = c; return o; }, sql);
将返回订单及其相关客户。我假设你在订单对象中有一个客户属性。