怎么做Petapoco加入

时间:2014-10-05 22:10:45

标签: petapoco

我试图尽可能地遵循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);
    }

始终返回客户数据,但订单始终为空。想法?

1 个答案:

答案 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);

将返回订单及其相关客户。我假设你在订单对象中有一个客户属性。