2010-08-03 4 views
2

프로젝트 관리자가 예를 들어 Nerddinner를 사용하여 완료 한 리포지토리 패턴을 사용하는 앱을 리팩토링하도록 요청했으며 service Layer을 사용했습니다. 내 문제는 이제 컨트롤러에서 UpdateModel 메서드를 사용해야하기 때문에 모델 업데이트 방법을 모르겠다 ... 서비스 계층과 함께 저장소 패턴을 사용하여 모델을 업데이트하는 권장 방법은 무엇입니까 ?? 도와주세요asp.net mvc에서 모델 업데이트

답변

0

서비스 레이어 내에서 현재 저장소 패턴을 숨길 것을 제안합니다. 데이터 액세스 코드는 서비스 클라이언트에게 표시되어서는 안됩니다.

서비스 계층에서 반환되거나 매개 변수로 허용되는 DTO 컬렉션을 구현할 수 있습니다. 이러한 객체는 데이터베이스에 독립적 인 방식으로 데이터를 보관하는 POCO 일 수 있습니다.

DTO에는 대개 데이터 액세스 클래스 (테이블을 나타내는)와의 변환을위한 어댑터가 수반됩니다. 이 접근 방식을 사용하면 서비스 계층 인터페이스를 변경하지 않고 데이터베이스 스키마를 변경할 수 있습니다.

프로젝트가 단순하고 뷰의 데이터가 서비스 계층 DTO와 일치하는 경우 해당 DTO를 MVC에서 모델로 처리 할 수 ​​있습니다. MVC 프로젝트에서 모델을 정의하고 컨트롤러 나 다른 어댑터 세트로 모델을 DTO로 변환 할 수도 있습니다.

내 선호 디자인에는 강력한 형식의보기로 작업하는 MVC (모델 폴더)에 선언 된 모델이 포함됩니다. 그런 다음 UpdateModel 메서드는 해당 클래스와 함께 작동합니다. 다음 컨트롤러 또는 ModelAdapter는 서비스 계층 DTO의 인스턴스를 생성하고이를 서비스에 전달합니다. 서비스 내의 DTO 어댑터는 저장소 패턴에서 데이터 액세스 클래스를 채우는 역할을합니다.