EF 4에서 NTier 디자인을 구현할 계획입니다. EF 자체가 데이터베이스에 매핑 한 테이블에 엔티티 기반을 생성한다는 것을 알고 있습니다. 내 질문은, DTO (데이터 전송 개체)의 사용은 무엇입니까 또는 정말 필요한가요? EF가 생성 한 모든 엔티티에 대해 다른 DTO 엔티티를 생성해야하기 때문에 리던던시를 촉진하는 것처럼 보입니다. 나를 안내 해줘. 감사합니다 ...엔티티 프레임 워크의 DTO
답변
DTO는 계층이 다른 프로세스 또는 다른 서버에있는 경우 물리적 계층간에 필요한 데이터 만 전송하는 데 사용되는 데이터 전송 개체입니다. 사람의 이름과 나이 만 공개해야하는 경우 주소, 고용, 자녀 등을 양도 할 필요가 없습니다. 따라서 이름과 나이만을 포함하는 간단한 전송 개체를 만듭니다.
EF는 데이터베이스 레코드를 속성에 매핑하는 엔터티를 만듭니다. EF 엔티티는 (부분 클래스에 의해) 사용자 정의 된 계산 속성 및 메소드를 사용하여 전체 도메인 객체로 확장 될 수도 있습니다. 도메인 객체는 다른 티어에 직접 노출되어서는 안되며 DTO가 사용되는 다른 경우입니다.
편집 :
하기 DTO를 사용하는 마지막 상황 크로스 경계 호출을 최적화합니다. 한 계층에서 프로세스 경계를 넘어 다른 계층의 메서드를 호출하는 계층화 된 응용 프로그램을 사용하는 경우 성능이 저하되므로 (느려짐) 이러한 호출을 최소화해야합니다. 그렇게하기 위해 복잡한 DTO를 생성하여 복잡한 데이터 구조 (여러 엔티티)를 원격 계층의 일부 마스터 조작 (facade)으로 전송할 수 있습니다.이 DTO는 데이터를 사용하여 여러 비즈니스 운영을 실행합니다.
DTO는 엔티티의 일부 또는 함께 묶은 일부 엔트를 전달해야 할 때 가장 유용합니다. 또한 엔티티는 실제로 엔티티 컨텍스트에 묶여 있으므로 외부 엔티티를 전달할 때 엔티티를 실행하고 데이터를 변경하는 등의 작업을 수행 할 수 있습니다. 개체를 외부로 전달하려는 경우이 경우에 이점을 얻을 수 있습니다. DTO를 사용합니다.
그렇다면 DTO는 계층화 된 EF 애플리케이션을 만들 때 실제로 선택 사항입니까? – clydePHI
WCF/WS를 사용하지 않기 때문에 단순한 단일 웹 프로젝트 일뿐입니다. – clydePHI
DTO가 없으면 엔티티가 DTO로 바뀌고 엔티티에 메소드를 추가하거나 (내부 메소드를 작성하지 않아야 함) 결국 엔 절차 적 애플리케이션 모델이됩니다. 따라서, n-tier만으로는 충분하지 않습니다. n-tier applicaiton 모델에서 몇 개의 레이어를 사용할 것입니까? EntityFramework를 사용하고 있기 때문에 DAL과 도메인 모델은 동일합니다. DTO를 사용하지 않을 경우 PresentationModel도 같고 UI 레이어에서보기 모델을 사용하지 않을 경우 간단한 웹 프로젝트를 위해 n 계층 응용 프로그램을 1 층 ( – hazimdikenli
- 1. 엔티티 프레임 워크의 DTO 및 자체 추적 엔티티 패턴
- 2. linq/엔티티 프레임 워크의 인코딩
- 3. 엔티티 프레임 워크의 리포지토리 테스트
- 4. 엔티티 프레임 워크의 테이블 매핑
- 5. 엔티티 프레임 워크의 복합 유형
- 6. 엔티티 프레임 워크의 코드 정리
- 7. 엔티티 프레임 워크의 순환 종속성
- 8. 엔티티 프레임 워크의 도메인 모델에 속성을 추가해야합니까?
- 9. 엔티티 프레임 워크의 싱글 톤 데이터베이스 패턴
- 10. 엔티티 프레임 워크의 코드 첫 번째 구현
- 11. 엔티티 프레임 워크의 다 대다 관계를 활용
- 12. 엔티티 프레임 워크의 재정의 삭제 기능
- 13. 엔티티 프레임 워크의 외래 키 관계
- 14. 엔티티 프레임 워크의 외래 키 4.1
- 15. 엔티티 프레임 워크의 모델을 수동으로 업데이트하는 방법
- 16. 엔티티 프레임 워크의 네비게이션 속성과 관련하여 NHibernate와 비슷한 것이 있습니까?
- 17. PHP 용 DTO 프레임
- 18. 스프링 프레임 워크의 엔티티 객체를 기반으로 다른 서비스 API 호출
- 19. 작업 패턴 및 엔티티 프레임 워크의 단위 : IObjectContextStorage?
- 20. 첨부 된 객체 대 엔티티 프레임 워크의 분리 된 객체
- 21. 엔티티 프레임 워크의 상속 - 구체적인 클래스 당 테이블?
- 22. 엔티티 프레임 워크의 .edmx 파일에서 데이터베이스를 생성하려면 어떻게해야합니까?
- 23. 엔티티 프레임 워크의 EdmItemCollection에서 getter 및 setter 액세스 한정자 찾기
- 24. 엔티티 프레임 워크의 캐시에서 데이터 가져 오기를 피하십시오.
- 25. 엔티티의 컬렉션을 엔티티 프레임 워크의 집합으로 만들려면 어떻게해야합니까?
- 26. PHP : 프레임 워크의 속도
- 27. 젠드 프레임 워크의 데코레이터
- 28. 젠드 프레임 워크의 캘린더
- 29. 플러그인과 프레임 워크의 차이점
- 30. Entity 프레임 워크의 StoreGeneratedPattern
Im DTO 생성을 피하기 위해 3 층 디자인의 각 레이어에 걸쳐 EF에서 생성 된 엔티티를 사용할 계획입니다. UI는 DAL (ntier 규칙을 위반하는)에 직접 액세스 할 수 있습니다. 그 접근에 어떤 의미가 있습니까 ?? – clydePHI
레이어와 계층이 동일하지 않습니다. 계층은 논리적 경계이고 계층은 물리적 경계입니다. –
그래서 내가 정말로 의미하는 것은 레이어입니다. DLL (BL, DAL)로 표시되는 레이어는 동일한 컴퓨터에 배포됩니다. – clydePHI