2011-08-08 5 views
1

현재 경량급 DataAccessLayer를 사용중인 프로젝트에서 작업 중입니다. 이 프로젝트는 businesslayer, dataacesslayer 및 DTO를 보유한 프로젝트로 구성됩니다. 이 설정은 수정되었으므로 변경할 수 없습니다. 또한 Nhibernate 나 Entity Framework와 같은 본격적인 ORM을 사용할 수 없습니다.개체/데이터베이스 매핑은 어디에 속합니까?

이 설정으로 제대로 작동하려면 DTO의 속성을 데이터베이스 필드에 매핑해야합니다. 현재 우리는 dataaccesslayer (모든 엔티티/DTO가 dataaccesslayer-class를 소유하고 있음)에서이를 수행하고 있습니다. 두 가지 방법 MapTo 및 MapFrom에서 발생합니다. 첫 번째는 개체의 필드를 테이블의 필드에 매핑하고 다른 하나는 그 역을 수행합니다.

이제 데이터 매핑 레이어가이 매핑을 정의하는 올바른 위치인지 궁금합니다. DTO에서 매핑을 정의하는 것이 더 좋지 않을까요? 예를 들어 속성이 있습니까? 또는 기본적으로 속성을 테이블 필드에 매핑하는 모든 클래스의 메서드 대신 더 일반적인 메서드입니다.

+0

Automapper를 살펴보십시오. – automagic

답변

0

도메인 모델은 DTO를 사용 하시겠습니까? 일반적으로 엔티티와 테이블 간의 매핑은 데이터 액세스 계층에 속합니다. 하지만 도메인 모델 프로젝트에 매핑을 넣지는 않겠습니다. 이 경우, 예를 들어 DB 테이블이 변경되면 도메인 모델과 DAL을 변경/컴파일해야합니다. 다른 예를 들어 DAL에서 매핑을 사용하는 경우 데이터베이스 또는 ORM 방법을 전환 할 때 DAL 만 변경하면됩니다.

관련 문제