비즈니스 계층에서 프레젠테이션 계층으로의 데이터 반환

StackOverflow https://stackoverflow.com/questions/981207

  •  13-09-2019
  •  | 
  •  

문제

ASP.NET 2.0 웹 사이트를 개발 중입니다. 데이터 액세스 및 비즈니스 로직 계층을 만들었습니다. 이제 프레젠테이션 계층에서 비즈니스 계층에서 데이터 세트로 데이터를 반환하고 있습니다.

내 질문은 데이터 세트 또는 객체 수집을 사용할지 여부입니다 (예 : 데이터베이스의 범주 테이블을 나타내는 범주 개체). 데이터베이스 테이블 (공통 개체)에 매핑 된 모든 클래스를 정의했습니다. 그러나 프레젠테이션 계층의 카테고리 테이블의 모든 레코드가 필요한 상황이 있습니다. 난 그냥 혼란 스러워요. 어떻게해야합니까?

도움이 되었습니까?

해결책

데이터 세트를 반환하고 싶지 않고 객체를 반환하고 싶습니다.

일반적으로 데이터 액세스 계층과 비즈니스 로직 계층이있는 경우 엔티티 계층도 갖고 싶을 것입니다. 엔티티 레이어는 데이터베이스 결과 세트의 메모리 리퍼 센터입니다. 데이터베이스에서 한 행을 반환하면 하나의 entitiy 객체를로드합니다. 둘 이상의 행을 반환하면 각 행에 대한 엔티티를로드하고 프레젠테이션 레이어에서 소비 할 엔티티 모음을 반환합니다.

예를 들어 .NET 2.0 이상을 사용하는 경우 엔티티 유형의 일반 컬렉션을 만들고 이러한 컬렉션에 다른 유형의 컨트롤을 쉽게 바인딩 할 수 있습니다.

이것이 당신에게 도움이되기를 바랍니다.

다른 팁

나는 물체의 반환 물체 나 ilumerable/ilist 등을 추천합니다.

DB 액세스에 따라 수동으로 카테고리 객체 목록을 채우거나 Linq2SQL 또는 ADO.NET Entity 프레임 워크와 같은 것을 매우 빠르게 사용할 수 있으며 필요한 경우 캐시를 사용할 수 있습니다.

상황에 따라 두 가지 방법을 모두 사용했습니다. 그리드의 테이블에서만 데이터를 표시 해야하는 경우 필드가 테이블에 추가되면 그리드에 자동으로 나타나기 때문에 데이터 세트 (또는 데이터 가능한) 메소드가 끔찍하지 않습니다. 열이있는 그리드. 나는이 방법을 더 빠르고 더러운 방법으로 본다.

나는 데이터 세트를 전혀 반환하지 않을 것입니다. 데이터베이스에 서비스를 제공합니다. 미래에 데이터베이스가 발전 할 때 데이터 세트를 사용하는 모든 것을 변경해야합니다. 데이터베이스와 서비스간에 추상화 계층을 만들려는 것입니다.

객체/수집 솔루션과 함께 갈 것입니다. 따라서 테이블에서 한 줄을 반환하는 경우 하나의 객체가 있습니다. 여러 가지를 반환하면 일반 컬렉션을 사용합니다. 일반 컬렉션은 권투/Unboxing 히트를 피할 수 있습니다.

편집] 내가 구타당한 것 같습니다 [/edit

데이터베이스에서 각 테이블을 나타내는 클래스가있는 엔티티 레이어를 작성해야합니다. 그런 다음 해당 클래스의 목록을 반환합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top