首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加入Petapoco

如何加入Petapoco
EN

Stack Overflow用户
提问于 2014-10-06 06:10:45
回答 1查看 2.4K关注 0票数 1

我已经尽我所能地按照Petapoco网站上的文档进行操作,但没有成功。

我有一个Customer poco,我已经修改了它,以获取一个List<Order> Orders {get; set;}。我想查询客户,并在每个customer对象中包含他们的相关订单。

代码语言:javascript
复制
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);
    }

客户数据总是会被返回,但是订单总是空的。有什么想法?

EN

回答 1

Stack Overflow用户

发布于 2014-10-08 03:57:17

你的.LeftJoin看起来像是没有客户的订单。为什么不使用.InnerJoin呢?通过使用(c, o) => { c.Orders = o; return c; },您正在将一个集合连接到一个我认为不可能的对象。

将语法修改为以下内容:

代码语言:javascript
复制
 return db.Fetch<Customer, Order, Order>(
               (c, o) => { o.Customer = c; return o; }, sql);

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26207739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档