저장 프로시저를 사용하여서는 엔티티 프레임워크를 어떻게 얻은 엔터티를 탐색 속성을 채웁니까?

StackOverflow https://stackoverflow.com/questions/1035677

문제

엔티티 프레임워크가 cripplingly 느린 그래서 나는 시도를 사용하여 저장된 절차만으로 이 문제를 해결합니다.

엔티티 프레임워크를 정의하는 저장 프로시저를 생산하는 entity.그러나 나의 엔티티는'탐색 속성'하지 않은 채워지고 있는 이 방법을 사용하는 경우.

가 있습니까?

도움이 되었습니까?

해결책

잘 저장된 절차는 합리적이지 않습니다. 따라서 SPROC를 호출하고 EF가 포함 () 또는 무언가를 사용하여 동일한 쿼리에서 관계를 자동으로 채우도록하는 방법이 없습니다.

따라서 제품과 카테고리가 있다고 가정 해 봅시다

그리고 당신은 제품을 얻을 수있는 스프로크가 있습니다.

var products = context.GetProducts(someproductfilter);

결과 제품에는 카테고리가로드되지 않습니다.

그러나 상기 제품의 범주를 얻는 두 번째 저장 절차가있는 경우 다음과 같습니다.

var categories = context.GetCategoriesForProducts(someproductfilter);

두 번째 엔터티가 컨텍스트에 들어가면 관련 엔티티를 연결하는 EF의 기능은 두 호출이 이루어지면 두 가지 제품의 각 제품에 널이 아닌 범주가 있는지 확인합니다.

둘 이상의 쿼리를하고 있기 때문에 이것은 이상적이지 않지만 작동합니다.

대안은 사용하는 것입니다 efextensions. 이 쓴 사람은 한 번에 더 많은 데이터를로드하는 스프로스를 작성하는 능력을 만들었습니다.

도움이 되었기를 바랍니다

Alex를 건배합니다

다른 팁

이렇게 질문을 연구할 때 저장된 절차(SPs)EF.나도 같은 사람들@KristianNissen 및@Todilo 요청이 있는 경우 업데이트와 함께 EF6.

대답은 예,EF6 가 변경된 것,그러나 그것은 아무것도 추가하지 불러 도움을 탐색 속성을 사용할 때 SPs.도 사용할 수 있습니다.포함한다()메소드와 함께 SPs 로에게 물어 이 그래서 질문.

유일한 방법으로 작성하는 것이 SP 하여 탐색 속성입니다.그러나 거기는 지금 몇 가지 좋은 Microsoft 설명서에 사용 SPs-보 쿼리 SPSP 반환 여러한 결과는 세트.

에 대한 완전성을 변경하는 EF 버전 6 에서 가져왔었을 허용하는 절차를 저장(SPs)를 핸들 삽입 업데이트 및 삭제한조 Microsoft 문서엔티티 프레임 워크 Tutotial.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top