레이어 (GUI, BLL, DAL) 엔터티 클래스를 정의해야하는 비즈니스 모델을 만들 때?어떤 레이어 엔티티 클래스를 정의해야합니까?
답변
엔티티는 비즈니스 로직의 일부입니다. 엔티티에서 비즈니스 규칙을 정의합니다.
사용자가 사용하는 데이터 액세스 유형을 모르고 있어야합니다. 이 작업은 저장소 패턴을 사용하여 수행 할 수 있습니다. BLL에서는 엔티티에서 작동하는 저장소 인터페이스를 정의합니다. 별도의 인프라 프로젝트에서는 리포지토리에 대한 구현을 정의합니다.
엔티티를 GUI로 전달하는 경우 선택의 문제입니다. 때로는 데이터를보기로 전달하기 위해 특수 제작 클래스를 사용하는 것이 좋지만 작은 프로젝트에서는 엔티티를 GUI로 직접 전달할 수 있습니다.
엔티티를 사용하는 방식에 따라 다릅니다. 그것은 단순한 POCO 객체라면, db에서 DTO로 응용 프로그램으로 사용되므로, DAL이 가장 적합한 장소라고 생각합니다. 비즈니스 논리의 일부처럼 엔티티를 사용하고자하는 경우 일부 기능이 있으므로 BLL이 최고의 장소가됩니다. 하지만 GUI에서 사용하고 정의해야하는 경우가 있다고 생각하지 않습니다.
모든 GUI 용도로 ViewModel을 사용하는 것이 좋습니다. EF를 사용할 때보 다 SQL과 상호 작용한다는 의미입니다 (대부분의 경우). 따라서 데이터가 정규화됩니다. 다른 한편으로는 GUI를 위해 비정규 화 된 데이터가 필요합니다. 그래서 GUI 용 ViewModel을 선호합니다.
두 곳
에서 정의 할 수 있습니다 (권장) 새로운 레이어 모델/엔티티또는
가
내가말을 데이터 액세스 레이어에서 그들을 정의 작성 :의를 자신의 레이어. GUI, 비즈니스 계층 및 데이터 액세스 계층은 모두 엔티티를 사용합니다. 그러나 GUI는 데이터 액세스 레이어에 의존하지 않으며 데이터 액세스 레이어는 서비스 레이어에 의존하지 않습니다. 따라서 엔티티는 자체 도메인 계층에 있어야합니다.
- 1. CUSIP을 어떤 데이터베이스 유형으로 정의해야합니까?
- 2. 표준 컨테이너에서 클래스를 사용하려면`operator ==`를 정의해야합니까?
- 3. 비즈니스 엔티티, 데이터 액세스 레이어 - 순환 참조
- 4. Windows Phone 엔티티 프레임 워크 데이터 레이어
- 5. IDataErrorInfo 내가 엔티티 클래스를 엔티티 클래스
- 6. 어디에서 Enums를 정의해야합니까?
- 7. 어디에서 어떻게 spl_autoload_register를 정의해야합니까?
- 8. 좋은 스타일을 위해서, 파이썬에서 내부 클래스를 메소드보다 먼저 정의해야합니까?
- 9. WordPress를 사용하거나 사용자 정의해야합니까?
- 10. C++ 클래스를 노출하기 위해 Boost.Python을 위해 PyMODINIT_FUNC를 정의해야합니까?
- 11. WCF 레이어
- 12. 어떤 뷰 클래스를 사용해야합니까?
- 13. 어떤 컬렉션 클래스를 사용해야합니까?
- 14. 엔티티 프레임 워크는 어떤 값
- 15. 각 열의 charset을 정의해야합니까?
- 16. def 파일을 정의해야합니까?
- 17. 레이어 레이어 불투명도
- 18. 어떤 상황에서 모듈과 클래스를 사용해야합니까?
- 19. 어떤 경우에 인감 클래스를 사용해야합니까?
- 20. 어떤 PHP 세션 클래스를 사용해야합니까?
- 21. verifyTrue를 사용하려면 어떤 클래스를 가져와야합니까?
- 22. 엔티티 프레임 워크 데이터 액세스 레이어 프로젝트의 연결 문자열
- 23. 클래스를 엔티티 클래스에 저장하는 방법은 무엇입니까?
- 24. 왜 JPA의 엔티티 클래스를 최종 수 없습니까?
- 25. 엔티티 클래스를 동적으로 매핑하는 방법은 무엇입니까?
- 26. Symfony2에서 멀티 엔티티 클래스를 저장할 폴더는 무엇입니까?
- 27. Nhibernate, 엔티티 클래스를 작성하는 데 도움이 필요합니다.
- 28. 레이어 및 요소?
- 29. 엔티티 속성 변경시 서비스 레이어 비즈니스 규칙을 적용하거나 엔티티 속성을 클라이언트에서 숨기고 서비스는 숨 깁니다.
- 30. @Autowired를 사용할 때 생성자를 정의해야합니까?
나는 동의합니다. Microsoft Entity Framework를 사용하는 것을 보았습니다. (틀 렸지만) Entity Framework는 DAL에서 efined되어야하고/또는 사용하는 데이터 액세스 유형을 모르는 것이 아닙니다. –
네, 저는 C#/Entity Framework 개발자입니다.) Entity Framework는 다른 코딩 스타일을 지원합니다. 데이터베이스 우선, 모델 우선 또는 코드 우선을 사용할 수 있습니다. Code First는 완전히 무지한 데이터베이스를 시작하는 가장 좋은 솔루션을 가지고 있습니다. 데이터베이스와 모델은 데이터베이스 무식한 POCO 객체를 출력하도록 구성 할 수 있습니다. 결국 엔티티가 포함 된 단일 프로젝트와 데이터베이스 인프라가있는 다른 프로젝트로 끝납니다. –