0

나는 TDD ASP.Net MVC로 Linq 프로그래밍을 조금 해왔고 그것을 좋아했습니다. Depressing, 지금은 저장된 procs에 대한 webforms을 배우고있어 linq 사용할 수 없습니다. MVC로 느슨한 커플 링과 테스트 가능성을 즐기고 싶습니다.내 자신의 거친 DataContext 디자인을 도와주세요

의존성 주입 인프라를 배우고 설정할 시간이 없었기 때문에 필요한 것에 따라 모의 인스턴스 나 실제 인스턴스를 만들도록 구성 할 수있는 객체 팩토리를 만들었습니다.

팩토리가 테스트 저장소의 새 인스턴스를 제공하므로 엔티티 A가 엔티티 B에 대한 리포지토리를 요청하면 내 단위 테스트의 컨텍스트에서 변경하지 않고 새로운 인스턴스를 가져옵니다. 문제. 필자의 테스트 인스턴스에는 지속성 메커니즘이 없으며 의존성 주입을 사용하지 않기 때문에 엔티티 A가 현재 유닛 테스트의 현재 데이터 컨텍스트에 액세스하여 엔티티 B의 더러운 저장소를 얻을 수있는 방법이 필요합니다. 대개 내 dataContext를 싱글 톤으로 만들지 만 웹 응용 프로그램의 동시성 문제로 인해이를 배제했습니다.

나는 따라야 할 멋진 패턴을 찾고 있습니다. 그 사이에 나는 모든 저장소와 비즈니스 객체를 데이터 컨텍스트로 인스턴스화하여 datContext가 dc로 리포지토리를 인스턴스화하고 dc로 비즈니스 객체를 인스턴스화하는 계층 구조를 생성해야한다고 요구했습니다.

저는 합성 패턴, 상속 또는 인터페이스 (조롱 제외)를 사용하지 않았습니다. 나는 OO 프로그래머가 아니지만 꽤보기 흉하게 보인다. 아무도 내 솔루션을 정리할 수있는 따라야 할 좋은 패턴 제안을 받았습니까? TIA

+0

저장된 procs 때문에 LINQ를 사용할 수 있습니까? LINQ to SQL이 지원합니다. –

+0

예 - 요구 사항에 'no linq'이라고 나와 있습니다. –

답변

0

데이터 매퍼 패턴을 봐, 이것은 우리가 사용하는 방법이며 우리를 위해 잘 작동, 거기에 많은 예이 있어야합니다.

+0

알았어요. http://martinfowler.com/eaaCatalog/dataMapper.html에는 내가 작성한 저장소가 컨텍스트 문제가 아니라 (이 책이 필요할 수도 있음) 설명되어 있습니다. "... 데이터 맵퍼 자체가 도메인 계층에도 알려져 있지 않습니다." 한 번에 개체 그래프의 모든 종속성을로드하지 않고 이것이 어떻게 달성되는지 알고 싶습니다. –

관련 문제