문제

리포지토리 패턴을 구현하는 방법 LinQtoentities 인터페이스 구현 방법

도움이 되었습니까?

해결책

나는 다음을 수행합니다.

서비스 계층에는 내 비즈니스 개체가 포함되어 있습니다.Inversion of Control(Inversion of Control)을 통해 저장소로 전달됩니다(Castle Windor가 제가 일반적으로 선택하는 방식입니다).저장소는 비즈니스 개체와 엔터티 프레임워크 개체 간의 매핑을 담당합니다.

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

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

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

인터페이스와 관련하여 서비스 계층의 비즈니스 개체를 매개 변수 개체로 사용하고 해당 EF 개체를 저장소 계층 밖으로 내보내지 않습니다.도움이 되었기를 바랍니다

다른 팁

나는 "Castle Windor" 항목을 제외하고는 거의 이 항목을 좋아합니다.openticket.codeplex.com을 살펴보세요.

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