2012-01-18 3 views

답변

1

엔티티는 비즈니스 로직의 일부입니다. 엔티티에서 비즈니스 규칙을 정의합니다.

사용자가 사용하는 데이터 액세스 유형을 모르고 있어야합니다. 이 작업은 저장소 패턴을 사용하여 수행 할 수 있습니다. BLL에서는 엔티티에서 작동하는 저장소 인터페이스를 정의합니다. 별도의 인프라 프로젝트에서는 리포지토리에 대한 구현을 정의합니다.

엔티티를 GUI로 전달하는 경우 선택의 문제입니다. 때로는 데이터를보기로 전달하기 위해 특수 제작 클래스를 사용하는 것이 좋지만 작은 프로젝트에서는 엔티티를 GUI로 직접 전달할 수 있습니다.

+0

나는 동의합니다. Microsoft Entity Framework를 사용하는 것을 보았습니다. (틀 렸지만) Entity Framework는 DAL에서 efined되어야하고/또는 사용하는 데이터 액세스 유형을 모르는 것이 아닙니다. –

+0

네, 저는 C#/Entity Framework 개발자입니다.) Entity Framework는 다른 코딩 스타일을 지원합니다. 데이터베이스 우선, 모델 우선 또는 코드 우선을 사용할 수 있습니다. Code First는 완전히 무지한 데이터베이스를 시작하는 가장 좋은 솔루션을 가지고 있습니다. 데이터베이스와 모델은 데이터베이스 무식한 POCO 객체를 출력하도록 구성 할 수 있습니다. 결국 엔티티가 포함 된 단일 프로젝트와 데이터베이스 인프라가있는 다른 프로젝트로 끝납니다. –

1

엔티티를 사용하는 방식에 따라 다릅니다. 그것은 단순한 POCO 객체라면, db에서 DTO로 응용 프로그램으로 사용되므로, DAL이 가장 적합한 장소라고 생각합니다. 비즈니스 논리의 일부처럼 엔티티를 사용하고자하는 경우 일부 기능이 있으므로 BLL이 최고의 장소가됩니다. 하지만 GUI에서 사용하고 정의해야하는 경우가 있다고 생각하지 않습니다.

모든 GUI 용도로 ViewModel을 사용하는 것이 좋습니다. EF를 사용할 때보 다 SQL과 상호 작용한다는 의미입니다 (대부분의 경우). 따라서 데이터가 정규화됩니다. 다른 한편으로는 GUI를 위해 비정규 화 된 데이터가 필요합니다. 그래서 GUI 용 ViewModel을 선호합니다.

1

두 곳

에서 정의 할 수 있습니다 (권장) 새로운 레이어 모델/엔티티

또는

내가
1

말을 데이터 액세스 레이어에서 그들을 정의 작성 :의를 자신의 레이어. GUI, 비즈니스 계층 및 데이터 액세스 계층은 모두 엔티티를 사용합니다. 그러나 GUI는 데이터 액세스 레이어에 의존하지 않으며 데이터 액세스 레이어는 서비스 레이어에 의존하지 않습니다. 따라서 엔티티는 자체 도메인 계층에 있어야합니다.

관련 문제