2011-07-26 5 views
5

저는 EF 코드를 먼저 배우고 있으며, 제 신청서에 어떤 패턴을 사용할지 조금 고심하고 있습니다. 다른 많은 사람들이 그렇게하고 있다고 말하는 동안 당신이 저장소 패턴을 사용해야한다고 말하는 몇몇 상반된 sugestions 및 arugments를 읽었습니다. 나는 동의하는 경향이 있습니다.EF 4.1 코드 우선 - 어떤 패턴을 사용해야합니까?

여기 내 delima입니다 :

나는 내가 고객을 관리 할 수 ​​있도록하기 위하여려고하는 REST 웹 서비스를 구축하고 가정하자. 이 서비스를 통해 고객을 추가하고, 사용자 정의를 삭제하고, 고객을 편집하고, 고객을 찾을 수 있습니다.

내가해야

A.) 내 질문 내 비즈니스 로직 가야 곳으로 내려 온다. Add, Edit, Delete 및 Find 메소드를 제공하는 CustomerManager 클래스가 Customer 엔터티에 있어야합니까? 내 검증 로직이 그러한 메소드에 있어야합니까?

B.) 고객 엔터티가 Customer 클래스 내부에서 모든 유효성 검사 로그인을 수행하면서 Save(), Delete() 및 Find() 메서드를 가질 때 Active Record 스타일을 사용해야합니까?

C.) 간단한 검증 로직이 엔티티 자체에있는 일부 유형의 하이브리드를 수행해야합니까? 이것은 코드가 먼저 속성을 부여함으로써 수행 될 수 있습니다. 엔티티에 간단한 저장 메소드를 사용할 수도 있습니다. 그런 다음 복잡한 비즈니스 유효성 검사 논리를 수행하고 CustomerManager 클래스에서 delete(), finds() 및 multi-entity 저장을 수행 할 수 있습니까?

저는 옵션 C에 의지했습니다. 과거에는 일반적으로 내 엔티티를 매우 단순하게 유지하는 관리자/서비스 클래스를 사용했습니다. 그러나, 코드가 엔티티 레벨에서 엔티티 속성 검증을 먼저 수행하기 때문에, 간단한 엔티티 검증이 거기에 가야 할 것처럼 보입니다.

저는 이것이 다소 종교적인 주제가 될 수 있음을 알고 있습니다. 그러나 저는 견고한 응용 프로그램을 만드는 가장 좋은 방법이 무엇인지에 대한 다른 옵션을 원합니다.

+0

당신이 궁극적으로 어떤 선택이 끝난 있나요? 당신의 결정에 행복 했습니까? 자, 같은 결정에 직면하여 Active Record 패턴을 선택하려고합니다. – Lorlin

답변

1

EF 4.1 코드는 먼저 데이터 맵퍼 패턴과 작업 단위를 결합합니다.

활성 레코드 패턴을 사용하지 않는 것이 좋습니다.

엔티티 프레임 워크가있는 저장소 패턴은 일반적인 해결책입니다. 간단한 검증 로직을 원한다면 엔티티 프레임 워크와 잘 작동하는 DataAnnotations를 사용할 수 있습니다. 여기

는 간단한 예는 EF와 저장소 패턴을 구현입니다 :

http://www.efekaptan.com/repository-pattern-with-entity-framework-code-first-4.1

관련 문제