Entity Framework 4.0 기능 살펴보기

이번 시간에는 본격적으로 Entity Framework 4.0에 대해서 알아보겠습니다. Entity Framework는 데이터와 객체(Entity)관계를 쉽게 맺어줌으로 실제적으로 ORM 프레임워크로 간주할 수 있습니다. Entity Framework 4.0으로 업데이트되면서 보강된 더 강력해진 대표 기능에 대해서 살펴보겠습니다. 고고씽~

 

대표 기능

다양한 데이터베이스 서버 지원

Data Store가 다음과 같으면 언제 어디서든 Entity Framework를 사용 할 수 있다. MS SQL, Oracle, MySql, PostgreSQL, SQL Anywhere, DB2, Informix, U2, Ingres, Progress, Firebird, Synergy, Virtuoso등이 있습니다. 굉장히 많죠? 저희가 주로 쓰는 MS SQL, Oracle, MySql가 될것 같은데요. Entity Framework ADO.NET Data Provider 상위에서 빌드되기 때문에 이런 많은 데이터베이스 지원이 가능했습니다.
2_1.jpg
[
그림 2-1] Entity Framework

 

통합된 Visual Studio 도구 제공

Visual Studio Tool에서 시각적인 Entity 모델과 기존 데이터베이스 개체 모델화를 자동으로 생성해준다. 또한 새로운 데이터베이스도 Visual Studio에서 모든 권한을 편집하여 배포 가능하다. Visual Studio의 가장 큰 장점인 드래그 앤 그롭이 가능하다는 것 입니다. 아주 쉽게 EDM(Entity Data Model)을 생성할 수 있죠~

 

POCO(Plain Old CLR Objects) 지원

기존 버전에서는 데이터 저장소와 논리적 객체(Entity)간의 연관성이 표현되지 않았습니다. 이를 지속성 무시 개체 POCO라고 불리는데요. 이번 버전에서는 영속성을 지원하는 POCO Entity가 제공됩니다.
POCO Entity
System.Data.Objects.ObjectContext 클래스를 상속 받는데요. 이 클래스에서 제공되는 메서드는 데이터 저장소와 엔티티간의 영속성을 지원 가능하게 해준다
.
http://msdn.microsoft.com/ko-kr/library/system.data.objects.objectcontext.aspx

 

Model-First 지원

Entity Framework 이전 버전에서 개념적 모델을 만들 수 있었습니다. 다만 개념적 모델은 데이터베이스 마법사를 통해서 생성되기 때문에 모델은 DB기반의 모델에 존속 될 수 밖에 없었습니다. Entity Framework 4.0에서는 기존방식도 지원하고 개념적 모델이 DB에 물리적 개체가 없어도 모델링이 가능하게 지원한다. 이를 Model-First라고 합니다.

 

관계 Object의 지연 실행

지연 실행에 대해서는 기존 버전에도 존재하며 LINQ의 대표 기능이기도 합니다. 다만 관계형에 대해서는 표현이 되지 않았는데요. 이번 버전에서 쿼리 결과가 명시적으로 탐색 속성에서 관계형 개체를 확인 할 수 있습니다.

 

엔티티 질의 LINQ 함수

Entity Framework 초기 버전에서는 함수의 지원이 제한되어 있었습니다. 여기서 말하는 함수는 저장 프로시져나 데이터베이스 UDF를 말하는데요. 새로운 EntityFunctions SqlFunctions 클래스가 이 이슈를 해결하기 위해 추가 되었습니다. 이 클래스들은 개발자에게 LINQ로 엔티티 질의를 할 수 있게 기능을 제공합니다.

 

Complex Type 지원

Visual Studio 2010 Entity Data Model Designer에서 원하는 복잡한 타입을 쉽게 정의 할 수 있습니다. 모델 탐색기에서 트리로 보여주는데요. 아래 그림처럼 모델 탐색기에서 Complex Type을 생성 할 수 있으며 여기서 정의된 타입은 Entity 속성으로 사용됩니다.
2_2.jpg

[그림 2-2] Model Browser

 

모델 브라우저 개선

Entity Framework 4.0이 릴리즈되면서 모델 브라우저에 몇 가지들이 개선되었다.

l  기본 데이터베이스가 변경 사항이 있을 때 모델 업데이트

l  모델에서 객체 삭제하기

l  스토리지와 개념적 모델에서 지정한 문자열 검색 기능

l  디자인 화면에서 매핑 된 Entity 타입 찾기

 

 

Entity Framework의 장점

1.      개발시간 절감된다.

2.      개발자는 응용프로그램을 구현하는 입장에서 객체 모델의 관점에서 작업할 수 있다.

3.      응용프로그램은 독립적인 개념적 모델을 지원함으로써 실제 데이터 저장소에 대한 종속이 해방될 수 있다.

4.      객체 모델과 특정 데이터 저장소의 스키마 사이의 매핑인 응용프로그램의 코드를 변경하지 않고도 가능하다.

5.      LINQ지원으로 개념적 모델에 대한 질의 시에 인텔리센스가 제공되며 컴파일 타임에서 구문 유효성 검사가 제공된다.

 

다음 세션부터 실전입니다.! 실전으로 통해서 위에서 말하는 기능들이 무엇인고~에 대해서 더 잘 이해 될 것입니다. 끝까지 읽어주셔서 감사합니다.^^

 

 

참고 URL

http://msdn.microsoft.com/en-us/data/dd363565.aspx
http://msdn.microsoft.com/en-us/data/aa937709
http://msdn.microsoft.com/en-us/data/aa937723
http://archive.msdn.microsoft.com/cs2010samples

 

 


Entity Framework, MyBatis.NET, NHibernate 강좌 리스트
[Entity Framework 강좌] 01. Entity Framework 들어가기
[Entity Framework 강좌] 02. Entity Framework 4.0 기능 살펴보기
[Entity Framework 강좌] 03. LINQ 알고가자
[Entity Framework 강좌] 04. Database-First VS Model-First
[Entity Framework 강좌] 05. Entity Framework Context
[Entity Framework 강좌] 06. Entity Framework - Entity CRUD
[Entity Framework 강좌] 07. Entity Framework - Entity Stored Procedure 활용(1)
[Entity Framework 강좌] 08. Entity Framework - Entity Stored Procedure 활용(2)
[Entity Framework 강좌] 09. Entity Framework – ASP.NET MVC(1)
[Entity Framework 강좌] 10. Entity Framework – ASP.NET MVC(2)
[Entity Framework 강좌] 11. Entity Framework – ASP.NET MVC(3)
[MyBatis강좌] 12. MyBatis.Net 들어가기
[MyBatis강좌] 13. MyBatis.NET 기본 및 환경 설정
[MyBatis강좌] 14. MyBatis.NET CRUD(1)
[MyBatis강좌] 15. MyBatis.NET CRUD(2)
[NHibernate강좌] 16. NHibernate 들어가기
[NHibernate강좌] 17. NHibernate xml 파일
[NHibernate강좌] 18. NHibernate 실전 - Object Relational Mapping
[NHibernate강좌] 19. NHibernate 실전 - CRUD(1)
[NHibernate강좌] 20. NHibernate 실전 - CRUD(2)


 





profile