2014-02-22 3 views
0

DAL 작성에 대한 지침이 필요합니다. 나는 좋은 자원을 찾으려고했지만 내 필요에 맞는 것을 찾지 못했습니다.DAL 설계 및 지침

필자는 약간의 일대 다 관계와 단일 many-to-many 관계가있는 약간 복잡한 데이터베이스 레이아웃을 가지고 있습니다. 기사의 대부분은 ORM을 돕기 위해 온라인 참조 엔티티 프레임 워크를 보았지만 안타깝게도 반사/방출을 사용할 수 없기 때문에 이것을 사용할 수 없습니다.

현재 데이터베이스에있는 각 테이블을 정확하게 나타내는 클래스가 있습니다. 그런 다음이 클래스를 조작 할 수 있도록 일반 저장소가 있습니다. 그 위에, 나는 수동으로 관계를 구현하는 추가 레이어 (서비스 레이어 ??)가 있습니다. 한 고객은 여러 개의 주소를 가질 수 있으므로 Customer 객체에는 주소 목록이 있습니다. 이것은 calc/연산이 수행되는 계층입니다. 이러한 관계형 객체 중 하나가 변경되면 서비스 계층은 테이블 객체로 변환하고 저장소를 통해 업데이트를 커밋합니다.

몇 가지 질문 :

  1. 계층에 대한 기술 이름은 무엇일까?
  2. DTO라는 테이블 표현과 POCO라는 관계형 객체가 있습니까?
  3. 관계형 객체에서 테이블 객체로의 변환을 저장소에서 수행해야합니까, 서비스 계층이라고 부르는 것입니까, 아니면 그 사이에 있습니까?
  4. 마지막으로, 내가하고있는 일이 의미가 있습니까?

해당 기사에 대한 링크는 모두 높이 평가됩니다.

코드 부족에 사과드립니다. 컴퓨터 옆에있을 때 예제로 업데이트됩니다.

편집 : 이것은 분명히 Windows 전화 & 로컬 sqlite 데이터베이스에 대한 전화입니다. 나는 간단한 객체를 사용하여 테이블을 객체에 매핑하지만, 자동으로 복잡한 객체를 생성 할 수는 없으며 간단한 테이블 표현을 통해 다른 레이어를 만들어야 만한다.

안부

답변

0

나는 약간 복잡한 데이터베이스 몇 일대 다 관계 레이아웃을 하나의 다 대다.

아, 약간 요리 메뉴가 있습니다. 계란과 베이컨.

약간 복잡한 데이터베이스를 본적이 있습니까? 200 개의 타블렛, 어쩌면 600 개의 관계라고합시다. 부디. 소수자 대다수와 대다수를 아는 사람은 아무 것도 아니지만 복잡하지는 않습니다.

은 내가 ORM에 도움이 온라인 참조 엔티티 프레임 워크를 보았다하지만 불행히도 나는 사용 반사/

엔티티 프레임 워크의 약간 오래된 버전에 포함되어있는 점을 감안 방출 할 수로 사용할 수 없습니다 .NET 프레임 워크 - 따라서 GAC에 설치되고 보안을 우회 - 마술처럼 반사를 사용하거나 방출 할 수 없다고 생각하는 이유는 무엇입니까?

이제 답변 :

1 : 없음 그게 아니야. 이 모든 것은 ORM입니다. 즉, 데이터 액세스 및 객체 관리 레이어라고 부릅니다.

2 : 논리가 없으면 (비즈니스, 데이터 액세스가 아님) 퇴화 된 비즈니스 객체 일 때만 DTO라고합니다. 그렇지 않으면 분명히 데이터 액세스 객체를 전달하지 않습니다. NOW poco - 그 용어의 의미를 아십니까? 일반 오래된 C# 개체 - 즉 기본 클래스에서 상속하지 않습니다.

3 :

4 : no. reflectio/emit을 사용하지 않는 것에 대한 당신의 주장은 약하다. 그것은 온화한 말이다. 너는 네 머리 위로있다. 나는 오랫동안 상용 ORM을 유지했고, 내 인생에서했던 모든 것들 중에서 가장 복잡한 소프트웨어 였을 것입니다. 잘못 할 톤이 있으며, 너무 뚱뚱한 IMHO로 뛰어들 가능성이 매우 높습니다. 다른 사람들이 해결 한 문제를 해결하기 위해 많은 시간을 할애 할 것입니다. 동적 인 SQL 유전자 조작은 당신에게 흰 머리카락을 주거나 매우 기본적인 요소 만 처리 할 수 ​​있습니다. 왜 당신은 반사 또는 바이트 코드 방출을 사용할 수 없는지 알아내는 데 더 많은 시간을 할애 할 수 있습니다 ....

기사 .... 이 시약에 내 참조 설명서를 보관하십시오. Scott Ambler의 "Building Object Applications That Work"- 인터넷에서 예를 들어 아마존에서 찾을 수 있다고 믿습니다.

+0

Windows phone은 emit을 지원하지 않습니다. SQL을 생성 할 필요가 없도록 아주 간단한 orm을 사용하고 있습니다. 방출이 없으므로 수동으로 객체 관계를 연결해야합니다. – Peter

+0

Windows Phone 용 ORM이 있습니다. 나는 그 자체가 프로젝트 인 경우를 제외하고는 "모든 비용으로"내 자신의 것을 쓰지 않을 것입니다. – TomTom