2013-05-15 6 views
3

데이터 액세스 레이어에서 인터페이스로 데이터 개체를 반환하는 가장 좋은 방법은 무엇입니까?DAL에서 데이터 개체 반환

현재 데이터베이스와 통신하고 DataTable을 비즈니스 계층에 반환 한 다음 비즈니스 계층이 비즈니스 개체를 설치하고 인터페이스로 돌아갑니다. 그 애처 롭거나 가난한 연습이 아닌가요?

내 질문은 :

- 무슨 DAL에서 데이터 개체를 반환하는 가장 좋은 방법은?

-DAL이 데이터 개체를 반환하지 않아야하는 경우 데이터 바인딩을 위해 데이터를 가져 오는 방법은 무엇입니까?

이것은 문제는 아니지만 모범 사례 문제입니다.

미리 감사드립니다.

답변

0

나는 DAL 반환 데이터 개체가되지 않도록 잘 모르겠어요 - 많은 개인 환경 설정이 있습니다 그것은 같은 응용 프로그램의 규모 등의 요인에 따라 달라집니다. 필자가 구축 한 대다수의 (작은) 응용 프로그램에서는 DataTables를 채우고 전달하는 대신 DAL에서 datareader를 사용했습니다. DAL은 datareader를 사용하여 컬렉션으로 서비스 계층에 반환되는 비즈니스 개체를 채 웁니다.

테이블이 항상 비즈니스 개체와 일치하지 않는 좀 더 복잡한 시나리오에서 필자는 DTO (데이터 전송 개체 - 테이블 구조 및 논리가없는 변수를 포함하는 클래스)를 채우기 위해 데이터 보관자를 사용했습니다. 컬렉션으로 서비스 계층에 반환됩니다. 서비스 계층은 하나 이상의 DTO 유형에서 비즈니스 오브젝트를 구성합니다.

이 질문에 대한 답변은 확실합니다. ('우수 사례'질문의 문제점!)하지만 내 경험으로 통찰력을 얻을 수 있습니다. (해야 할 일이나하지 말아야 할 것이 논쟁의 여지가 있습니다!). 나는 다른 사람들이 이것에 기여할 수있는 대답을보기 위해 스스로 관심이있다. ORM의 사용을 조사하는 것이 하나의 대답 일 것입니다.