2011-03-10 4 views
0

DB 모델에서 뷰 모델을 분리하는 방법을 결정할 수 없습니다.ASP.Net MVC DB 모델에서 뷰 모델을 분리하는 방법은 무엇입니까?

DB 액세스에 ActiveRecord 패턴을 사용하고 있습니다. 나는 데이터베이스의 각 사용자 행에 대한 User 클래스 인스턴스를 얻는다.

WebForms에서 저는 이것을 내 모델 객체로 사용하여 대부분의 비즈니스 로직을 내 ActiveRecord에 직접 구현했습니다.

저는 이것이 정확히 3 층 디자인이 아니라는 것을 알고 있습니다. 특히 MVC에서 관심의 이등분을 공감할 수 있도록 개선하고 싶습니다.

컨트롤러에서 DB 모델에 액세스 할 수 없어야하지만 DB에서 데이터를 저장 /로드하는 방법은 어떻게 될까요?

귀하의 뷰 모델에 엄청난 양의 비즈니스 로직을 배치해야한다는 생각은 들지 않습니다. 그래서 어떻게 든 퍼즐의 핵심 부분을 놓치고 있다고 생각합니다.

은 내가 찾고 내가

:-) 추측위한 최선의 조언 내가 다른 문의하시기 바랍니다,이 모든 감각을 만들어 희망입니다.

답변

2

보기 당 하나의보기 모델을 만들고 AutoMapper을 사용하여 활성 레코드의 속성을보기 모델에 매핑하는 것이 좋습니다. DB 모델에 액세스 할 수있는 컨트롤러에 문제가 있다고 생각하지 않습니다. 컨트롤러는 뷰 모델로 컨트롤러를 변환해야합니다.

보기 모델 (실제로 데이터 모델을 게시)을 다시 활성 레코드로 변환하는 경우 간단한 경우에는 AutoMapper를 사용하고 나머지 경우에는 사용자 지정 코드를 사용할 수 있습니다.

+0

소리가 좋은 아이디어처럼 들립니다. – Steffen

관련 문제