我已经尽我所能地按照Petapoco网站上的文档进行操作,但没有成功。
我有一个Customer poco,我已经修改了它,以获取一个List<Order> Orders {get; set;}。我想查询客户,并在每个customer对象中包含他们的相关订单。
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);
}客户数据总是会被返回,但是订单总是空的。有什么想法?
发布于 2014-10-08 03:57:17
你的.LeftJoin看起来像是没有客户的订单。为什么不使用.InnerJoin呢?通过使用(c, o) => { c.Orders = o; return c; },您正在将一个集合连接到一个我认为不可能的对象。
将语法修改为以下内容:
return db.Fetch<Customer, Order, Order>(
(c, o) => { o.Customer = c; return o; }, sql);它将返回订单及其相关客户。我假设您在order对象中有一个customer属性。
https://stackoverflow.com/questions/26207739
复制相似问题