2014-10-05 4 views
1

나는 운 좋게도 가능한 한 Petapoco 사이트의 설명서를 따르려고했습니다.Petapoco 조인하는 방법

나는 List<Order> Orders {get; set;}을 갖기 위해 수정 한 Customer poco가 있습니다. 고객에게 질문하고 각 고객 객체 내에 관련 주문을 포함하고 싶습니다.

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

.LeftJoin은 고객이없는 주문처럼 보입니다. .InnerJoin을 사용하지 않는 이유는 무엇입니까? (c, o) => { c.Orders = o; return c; }을 사용하면 내가 생각할 수없는 개체에 컬렉션에 참여하게됩니다.

하면 다음에 구문을 수정

return db.Fetch<Customer, Order, Order>(
       (c, o) => { o.Customer = c; return o; }, sql); 

주문 및 관련 고객을 반환하는. 주문 개체에 고객 속성이 있다고 가정합니다.

+0

실제로 주문 (속성) 목록이있는 고객 개체가 있습니다. 할당보다는 목록에 순서를 추가하여이 작업을 할 수있었습니다. –