title: "**ADO.NET Entity Framework 4.0의 개선 사항 (1/3)**"
description: "**ADO.NET Entity Framework 4.0의 개선 사항 (1/3)**"
cleanUrl: /sw-engineer/entity-framework-40-1-3
floatFirstTOC: right

다음은 실제 프로젝트에서 마주친 ADO.NET Entity Framework(이하 EF) 1.0의 주요 문제점이다. 그간의 문제점 먼저 짚어야 이야기 풀기가 용이할 듯 해서리... 이렇게 돌아서 간다.

1. POCO(Plain Old CLR Object) 미지원

2. N-Tier 아키텍처 적용 시, DTO(Data Transfer Object) 수동 적용 필

3. 난해한 Foreign Key의 접근 경로

4. Cascading Delete 적용 반영 사항 미비 - xml의 직접 수정 요구

사실, 프로젝트 처음 시작할 때만해도 ORM 도구에 대해 별로 아는 바가 없기에 MS를 믿고 EF 1.0을 택했지, 지금이라면 절대 이를 고르지 않았을 것이다. 다른 문제는 어쨌건 우회책 등이 있으니 그렇다 치고, #2에서 설명한 DTO의 필요성을 마주쳤을 때는 정말이지... 절망스러웠다. 아니, 실전 프로젝트에서 DB Table이 한둘이던가? 최소 수십여개에 이르는 Table에 대해 각각의 DTO를 손수 만들고, PAE와 DTO간 속성 매핑 노가다를 대부분의 CRUD 연산 코드에서 수행한다? 한마디로 말해 미친 짓이다.

http://msdn.microsoft.com/ko-kr/magazine/dd263098.aspx

위 MSDN Magazine의 컬럼은 DTO를 통한 EF 사용 예를 들고 있는데, 앞서 설명한 문제는 쏙~ 빼놨다. 본 컬럼 등을 보고, 믿고 프로젝트 용감하게 EF를 적용했던 나는 적용 이후 한참이나 지나서야 문제를 파악하게 되었으니. 결국 해당 프로젝트에서는 XSLT 기반으로 DTO Generator와 DTO-PAE Auto Mapper를 손수 만들어서야 문제를 해결보게 되었다(참고로 http://code.msdn.microsoft.com/EFPocoAdapter에서 이와 동일한 목적의 도구를 제공한다. 난 프로젝트 종료시점에 와서야 이를 알았다는... 썅)