2012-01-28 3 views
2

Linq에서 SQL로 작업 할 때 DataLoadOptions를 사용하여로드 할 "자식"개체를 지정할 수 있습니다. BLToolkit과 비슷한 기술이 있습니까?L2T에서 LoadWith와 동일한 BLToolkit

그것은 BLT와 내가 같이 직접 BO를 만들 수 있습니다 좋다 :

from p in db.Parent 
select new Parent 
{ 
    ParentId = p.ParentId, 
    Child = p.Child 
}; 

그러나 전체 하위 객체가 생성되는 동안, 나는 (부모의 모든 필드를 지정해야합니다,이 길을가는, 즉 ParentId , ParentName, ParentDob ​​등)

감사합니다.

답변

2

LoadWith와 정확히 같지 않지만, 내 생각에 아래의 접근 방법은 더 깔끔하고 (덜 마술적인) 방법입니다. 이제

public static Parent Build(Parent parent, Child child) 
{ 
    parent.Child = child; 
    return parent; 
} 

이처럼 LINQ 쿼리를 작성해야 할 것 :

var query = from p in db.Parent 
      select Parent.Build(p, p.Child); 

을 따라서가 아니라 "페이지를 선택"또는 "선택하여 BO에서 같을 것이다 정적 기능을 new Parent() "정적 함수가"p "를 반환 할뿐만 아니라 반환하기 전에 Child 객체를"parent.Child "에 할당합니다. 연결이 제대로 설정되어있는 한 (BLToolkit.Mapping.Association) p.Child는 BLT에 하위 테이블에도 가입하도록 지시합니다. 더 멀리 갈 수 있습니다 (예 : p.Child.Friends.etc).