2014-03-04 7 views
0

응용 프로그램의 개체 이름에 몇 가지 문제가 있습니다. 예를 들어, 어떤 ORM (NHibernate 또는 Entity Frameworks)에 의해 생성 된 클래스는 도메인 객체라고 부릅니까? 엔티티? 모델 객체? 그들은 DAO입니까? 그들 사이에 어떤 차이가 있습니까?ORM에서 클래스를 생성하는 방법은 무엇입니까?

감사

+0

질문을 수정하시기 바랍니다. 바로 지금 당신이 정확히 무엇을 요구하고 있는지 명확하지 않습니다. – jsalonen

답변

1

데이터베이스의 테이블을 나타내는 클래스는 보통 (많은 관계 테이블에 많은 제외) 각 테이블에 대해 하나 개의 도메인 클래스를해야합니다, 도메인이라고합니다.

이 도메인 클래스를 실제 데이터베이스에 매핑하려면 각 도메인 클래스가 매핑되어야 할 테이블과 각기 다른 데이터베이스 필드를 지정할 때 각 도메인 클래스에 대한 매핑 클래스가 있어야합니다.

이제 데이터베이스에 매핑 된 도메인 클래스를 선택, 업데이트, 삽입 또는 삭제하는 데 사용되는 데이터 액세스 계층 (DAL)이 있습니다.

그러나 DAL을 사용하도록 응용 프로그램을 빌드하면 DTO 또는 모델을 사용하게됩니다. 모델은 일반적으로 도메인과 다른 응용 프로그램에 표시 할 개체입니다. 필드의 서식 지정, 순수 데이터베이스 필드를 제거하는 데이터의 서브 세트, 두 개의 다른 도메인의 병합 일 수 있습니다.

따라서 응용 프로그램은 DTO (또는 모델) 만 조작하고 응용 프로그램이 DTO를 작성/업데이트/삭제하면 서버가 DTO와 도메인 간의 변환을 관리합니다.

DATABASE < => 매핑 < => DOMAIN < => DTO는

+0

안녕하세요, 귀하의 설명에 많은 감사드립니다. 매핑 클래스 (일반적으로 ORM에서 생성)가 도메인 클래스라고 이해합니까? – MrScf

+0

DAL은 삭제를 구현하는 계층입니까 또는 저장 여기서 T는 매핑 클래스입니다. – MrScf

+0

필자는 도메인 클래스와 매핑 클래스를 분리하여 보관하는 것을 권장합니다. DAL 레이어는 확실히 삭제를 구현하거나 을 저장합니다. 일반적으로 저장소 패턴을 사용하여 DAL을 관리합니다. [링크] (http://www.primaryobjects.com/CMS/Article119.aspx) –

관련 문제