2011-04-13 3 views
0

필자는 매우 잘 구조화 된 프로젝트라고 생각합니다. Fowler의 양파 아키텍처를 읽고 IOC/DI를위한 Ninject를 배우고 Psuedo 저장소 클래스를 조정하면 Eb 4.1을 사용하므로 DbSet 및 DbContext가 대부분 저장소를 제공합니다. 나는 이제 내 저장소에 다른 엔터티/관련 엔터티를 "포함"하고자 할 때 Entity Framework에 대한 불쾌한 의존성에 직면하고 있습니다.엔티티 프레임 워크에 대한 의존성 깨기

누구든지이 종속성을 깨는 방법에 대한 제안 사항이 있습니까? 예를 들어 리포지토리를 호출하는 서비스 계층이 있습니다. 사용하기로 결정하자마자 뚱뚱하고 무거운 Entity Framework에 바인딩되었습니다 .Join과 함께 가야하는지, 아니면 EF를 어떤 방식 으로든 추상화 할 수 있습니까? ?

public static class MyExtensions 
{ 
    public static IQueryable<TSource> Include<TSource> 
    (this IQueryable<TSource> source, string path) 
    { 
    var objectQuery = source as ObjectQuery<TSource>; 
    if (objectQuery != null) 
    { 
     return objectQuery.Include(path); 
    } 
    return source; 
    } 
} 

그녀의 전체 블로그 게시물을 참조 :

+0

: http://msdn.microsoft.com/en-us/library/dd456853.aspx –

답변

1

줄리 러먼은 당신이 당신의 코드에 포함 사용하지 단위 테스트 중단 할 수 있습니다 그녀가이 IQueryable<T>에 확장 메서드를 포함 보여줍니다 그녀의 블로그에 게시물을 가지고 여기 : 당신이 보지 못한 이런 경우에
Agile Entity Framework 4 Repository Part 5: IObjectSet and Include

+0

보너스, 나는 많은 감사를 확인해 갈 것입니다 .. .W00t! –

+0

Ugh, 더 많은 ObjectContext에서 DbContext 로의 변환 : –

+0

원래 코드는'IObjectSet '에 대한 확장 메소드라고 생각 했었고 코드 우선 모델을 사용하고 있기 때문에 면책 조항을 써야한다고 생각했습니다. 내가'IQueryable '이라는 것을 보았을 때 나는 방법 몸을 보지 않고서는 흥분해서 붙여 넣었다! –

관련 문제