2008-09-10 3 views

답변

1

을 구현하는 방법을 LinqToEntities 에게가는 가지. Inversion of Control을 통해 저장소로 전달됩니다 (Castle Windor는 평소 선택했습니다). 저장소는 비즈니스 개체와 내 엔터티 프레임 워크 개체 간의 매핑을 담당합니다.

장점 : 저장소 상태에서 데이터를 조작하는 동안 EF 개체를로드하기 때문에 개체 상태 나 EF 개체의 컨텍스트에 문제가 없습니다. 이렇게하면 WCF/웹 서비스로 전달할 때 상황이 쉬워집니다.

단점 Entity Framework의 일부 추적 기능을 잃어 버리고 있으므로 수동으로 데이터 개체 (ef 개체)를 수동으로로드해야합니다 (예 : 비즈니스 개체의 타임 스탬프를 통해 예를 들어 낙관적 동시성 검사에 수동으로로드해야하는 경우)).

그러나 일반적으로 나중에이 저장소를 변경할 수 있기 때문에이 솔루션을 선호합니다. 그것은 내가 다른 저장소 (예를 들어, 내 사용자 객체가 EntityFrameworkRepository 대신에 ASPNetAuthenticationRepository를 실제로 사용하고 있음)를 허용하지만, 내 서비스 계층에 대해서는 투명합니다.

인터페이스에 관해서는 매개 변수 개체로 서비스 계층의 비즈니스 개체를 사용하고 이러한 EF 개체를 리포지토리 계층에서 제외시키지 않습니다. 도움이 되길 바랍니다

1

"Castle Windor"를 제외하고는 거의 마음에 듭니다. openticket.codeplex.com을보세요