2011-03-23 8 views
1

모든 EF 엔터티를 비즈니스 개체로 캡슐화하려고합니다. EF 엔티티 "투자"에는 엔티티 내부를 보유하고 모든 특성을 라우트하는 "BoInvestment"비즈니스 오브젝트가 있습니다. 도전 과제 인 탐색 속성 용. "Investment"의 "Reports"에 지연된 EntityCollection이 있다고 가정 해 보겠습니다. 비즈니스 오브젝트 "BoInvestment"는 "Report"도 비즈니스 오브젝트에 캡 6 화되기 때.에이 "Reports"를 "BoReports"로 필요로합니다. "IList"만 반환하면 모든 보고서가 항상 메모리에로드됩니다. EntityCollection은 구체화 될 때까지 단지 Querable이라는 EF 이점을 잃어 버릴 것입니다.Entity Framework 4 : 비즈니스 개체의 탐색 속성 캡슐화

어떤 아이디어 :

답변

0

IQueryable을 사용하지 않는 이유는 무엇입니까? 이 방법을 사용하면 여전히 쿼리 작성과 지연로드의 이점을 누릴 수 있습니다.

또 다른 아이디어는 엔티티가 EF에 의해 생성 된 객체는 사실을 활용하는 것입니다 당신이 당신의 BO 기능을 포함하도록 내가 개념 증명했다

+0

을 확장 할 수있는 부분 클래스는 사실에, 그것은 가능할 것이다 모든 것을 캡슐화하기 위해 ...하지만 그것은 복잡 할 수 있습니다. 따라서 EF 엔티티를 직접 사용할 것입니다. – SolarX

1

아이디어는 사업 대신 새로운 객체 층에 포장의 객체를 직접으로 엔티티를 사용하고 있습니다. Entity 객체 대신 POCO를 사용하면 훨씬 더 효과적입니다. 현재 아키텍처를 계속 확인하려면 Lazy<T> - msdn을 확인하십시오. 이는 비즈니스 객체에 네비게이션 속성을 구현하는 방법이 될 수 있습니다.