엔티티 프레임워크
: Code First & DbContext
저자 줄리아 러먼, 로완 밀러
역자 김상우, 최다은
감수자 박경훈
출간일 2013년 3월 21일 (목)
정가 33,000원
페이지 524
판형 190 x 245
ISBN 978-89-94774-33-6 (93560)
원서정보: Programming Entity Framework: Code First, Programming Entity Framework: DbContext
책 소개
엔티티 프레임워크 프로그래밍
PART I. Code First
ADO.NET 엔티티 프레임워크의 코드 퍼스트 데이터 모델링 접근 방식을 활용하여, 비즈니스 도메인의 기존 클래스를 기반으로 모델을 구축하고 구성하는 방법에 대해 알아보자.
PART I통해 여러분은 코드 퍼스트가 메모리에 모델과 데이터베이스를 생성하는 기본적인 방법 및 다양한 구성 작업으로 보다 모델을 효율적으로 관리하는 방법을 직접 예제로 실습해보면서 배울 수 있다.
코드 퍼스트는 엔티티 데이터 모델에 접근하는 데이터베이스 퍼스트 및 모델 퍼스트의 대안을 제공한다. 기존 데이터베이스로 작업하거나 새로운 데이터베이스를 구축할 경우 코드로 모델을 정의하는 작업의 장점을 배울 수 있다. 이 책은 Visual Studio와 함께 작업할 수 있으며, 데이터베이스 관리의 기본을 이해하고 있는 독자에게 유용한 정보를 제공한다.
- 코드 퍼스트로 작업할 수 있는 것과 없는 것에 대해 정확하게 배울 수 있다.
- 코드 퍼스트가 해당 클래스로부터 프로퍼티 어트리뷰트, 관계, 데이터베이스 매핑을 유추하는 방법을 이해할 수 있다.
- 코드 퍼스트 데이터 모델을 구성하기 위해 데이터 주석과 플루언트 API를 사용할 수 있다.
- 데이터베이스 스키마를 제어하고 기본 모델 캐싱을 재정의하는 고급 기술들을 수행할 수 있다.
PART II. DbContext
DbContext API는 엔티티 프레임워크를 이용한 개발을 단순화해주기 위해 가장 일반적으로 사용되는 기능과 작업들을 포함한다.
PART II는 DbContext API로 어떻게 DbSet 클래스를 동작하고 변경 추적을 처리하며, 변경 추적 API로 동시성 충돌을 해결하고 유효성 검사 API로 데이터에 대한 변경사항을 검사하는지 알려준다.
DbContext를 이용하면 개별적인 오브젝트나 오브젝트 그래프, 그리고 그들과 관계된 데이터에 상관없이 데이터를 쿼리하고 업데이트할 수 있다. 이 책은 여러분이 이를 수월하게 시작할 수 있도록 수많은 C# 예제 코드들을 포함하고 있다. 필요한 것은 단지 Visual Studio와 데이터베이스 기본 관리에 대한 기초적인 경험뿐이다.
- 데이터를 조회하기 위해 엔티티 프레임워크의 쿼리 기능을 사용한다. 그리고 데이터를 정렬하고 필터링하기 위해 LINQ를 사용한다.
- 새로운 데이터를 추가하고, 기존 데이터를 변경하고 삭제하는 방법을 배운다.
- 엔티티 프레임워크가 유지하고 있는 엔티티 인스턴스들에 대한 상태정보에 접근하기 위해 변경 추적 API를 사용한다.
- N-Tier 애플리케이션을 포함하는 비 연결 시나리오에서 엔티티들의 변경 추적정보를 제어한다.
- 변경된 데이터를 데이터베이스에 보내기 전에 유효성 검사를 하고 규칙을 설정한다.
엔티티 프레임워크의 쿼리 파이프라인을 우회하고 데이터베이스와 직접 상호작용한다.
예제코드 다운로드
PART I: http://shop.oreilly.com/product/0636920022220.do
PART II: http://shop.oreilly.com/product/0636920022237.do
독자 대상
이 책은 비주얼 스튜디오와 데이터베이스 기본 관리 경력이 있는 개발자들을 대상으로 한다. 엔티티 프레임워크를 사용해본 경험이 있다면 큰 도움이 되겠지만, 필수는 아니다. 이 예제 코드는 C#으로 작성되었으나, 경우에 따라 비주얼 베이직으로 보여주기도 했다. C#에서 비주얼 베이직으로 코드 조각을 변환하는 데 사용할 수 있는 여러 온라인 도구가 있다.
저자소개
줄리아 러먼(Julia Lerman)
엔티티 프레임워크의 최고 권위자이며, 2006년에 처음 도입된 이래 기술을 사용하고 가르치는 작업을 지속하고 있다. 줄리아는 마이크로소프트 MVP, ASPInsider, INETA 강연자로 닷넷 커뮤니티에서 잘 알려져 있다. 줄리아는 전 세계 기술 컨퍼런스의 발표자로 자주 서고 있으며, MSDN 매거진의 “Data Points” 칼럼을 포함해 잘 알려진 많은 기술 서적에 대한 기사를 쓰고 있다. 줄리아는 버몬트(Vermont)에서 남편 리치(Rich), 거대한 개 샘슨(Sampson)과 함께 살고 있으며 Vermont.NET User Group을 운영하고 있다. www.thedatafarm.com/blog에서 그녀의 블로그를 읽을 수 있고 트위터 주소는 @julielerman이다.
로완 밀러(Rowan Miller)
워싱턴 주 시애틀에 본사를 둔 마이크로소프트에서 ADO.NET 엔티티 프레임워크 팀 프로그램 관리자로 일하고 있다. 미국으로 가기 전에는 호주에 있는 태즈메이니아(Tasmania)의 작은 주에서 살았었다. 로완은 기술 컨퍼런스 및 http://romiller.com의 블로그에서 만날 수 있다. 또한 기술적인 활동 외에 스노우보드, 산악 자전거, 승마, 암벽 등반 등 꽤 다양한 활동에도 열정적이다. 그러나 그의 삶에서 가장 중요한 것은 예수님을 따르는 것이다.
역자소개
최다은
어릴 때 게임을 좋아하여 직접 만들어보고 싶다는 꿈이 개발자로 이어지게 되었으며, 2010년부터 HOONS 닷넷 실버라이트 시삽을 맡고 있다. 현재는 IT와 비즈니스를 접목한 컨설팅 분야에 관심을 가지고 관련분야의 길을 모색하고 있다. 공부하며 탐구하는 삶에 재미를 느끼며, 다양한 번역 작업에도 관심이 있다. 여행을 다니며 별을 보는 것을 좋아하여 밤하늘을 사진으로 담아내는 아마추어 천문 사진작가로써의 소박한 꿈도 가지고 있다.
김상우
현재 건설업전문 ERP 솔루션업체인 굿센테크날러지의 ERP사업팀에서 R&D와 유지보수조직을 총괄하고 있으며, 2011년에 HOONS 닷넷 커뮤니티에서 WPF 시샵으로 활동하였고 MS(Microsoft) Window Azure Solution build Program 최우수 파트너에 선정되었던 Cloud ERP 노무관리 시스템 구축의 PM을 담당했다.
감수자 소개
박경훈
국내 최대의 닷넷 개발자 커뮤니티인 HOONS 닷넷을 10여년 동안 운영해오면서, 또한2005년부터 지금까지 Microsoft Visual C# MVP로 활동해오면서 프로그래밍 서적 10여권을 번역 및 집필했고 수많은 세미나와 컨퍼런스들을 기획/진행하면서 닷넷 개발자들에게 닷넷 기술들과 함께 새로운 열정을 전하는 데 노력해왔다. 극동방송의 테마 CCM 진행자로 1년 동안 활동했으며, 지난 2년 동안은 영국에서 캠든소프트를 설립하여 모바일 앱 제작 도구 개발에 매진하기도 했다. 현재 런던대학교 킹스칼리지 대학원에서 소프트웨어에 대한 새로운 학문들의 이론을 공부하고 있다.
목차
PART 1 Code First
CHAPTER 1 코드 퍼스트에 온 것을 환영합니다
- 코드 퍼스트를 시작하기 전에 엔티티 프레임워크로 모델링하기
- 코드 퍼스트의 시작
- 닷넷의 배포 시기와 코드 퍼스트
- v코드 퍼스트 작성하기
- DbContext로 개체 관리하기
- 데이터 레이어와 도메인 클래스 이용하기
- 클래스에서 데이터베이스 얻기
- 설정 작업
- 데이터 베이스 생성 또는 지정하기
- 코드 퍼스트가 지원하지 않는 기술
- 이 책에서 배우는 것
CHAPTER 2 코드 퍼스트 처음으로 살펴보기
- 도메인 클래스로 가기 위해 EF 소개하기
- 예제에서 조각을 전체로 통합하기
- 설정에 따른 규칙 재정의하기
- 데이터베이스 초기화에 영향을 주는 모델 변경방법 이해하기
- 플루언트 API로 코드 퍼스트 설정하기
- 요약
CHAPTER 3 프로퍼티 어트리뷰트 규칙과 구성 사용하기
- 코드 퍼스트로 프로퍼티 어트리뷰트 작업하기
- 매핑 키
- 생성된 데이터베이스 프로퍼티 설정하기
- 낙관적 동시성에 대해 TimeStamp와 RowVersion 필드 구성하기
- 동시성에 대해 타임스탬프가 아닌 필드 구성하기
- 유니코드가 아닌 데이터베이스 타입에 매핑하기
- 십진법의 정밀과 스케일에 영향 주기
- 코드 퍼스트에서 복합 타입으로 작업하기
- 복합 타입 프로퍼티 설정하기
- 요약
CHAPTER 4 관계 규칙과 구성 사용하기
- 다중성 작업하기
- 외래 키로 작업하기
- 내비게이션 프로퍼티 역작업
- 캐스케이드 삭제 작업하기
- 다대다 관계 탐색하기
- 단방향 내비게이션을 가지는 관계로 작업하기
- 일대일 관계 작업하기
- 요약
CHAPTER 5 데이터베이스 매핑 규칙과 구성 사용하기
- 데이터베이스 테이블 및 스키마 이름에 클래스 이름 매핑하기
- 데이터베이스 칼럼으로 프로퍼티 이름 매핑하기
- 여러 엔티티를 하나의 테이블로 매핑하는 작업: 테이블 분할
- 여러 테이블에 하나의 엔티티 매핑하기
- 데이터베이스에 매핑된 타입 제어하기
- 프로퍼티의 매핑과 접근성 이해하기
- 프로퍼티가 모델에 포함되지 않도록 작업하기
- 상속 계층 매핑하기
- 추상 기본 클래스로 작업하기
- 관계 매핑하기
- 요약
CHAPTER 6 데이터베이스 위치, 생성 과정 및 시드 데이터 제어하기
- 데이터베이스 위치 제어하기
- 데이터베이스 초기화 작업하기
- 시드 데이터로 데이터베이스 이니셜라이저 사용하기
- 데이터베이스 스키마에 더 많은 영향을 주는 데이터베이스 초기화 사용하기
- 요약
CHAPTER 7 고급 개념
- 테이블이 아닌 데이터베이스 개체에 매핑하기
- 규칙 제거하기
- 모델 캐싱 제어하기
- EdmMetadata 테이블로 작업하기
- ObjectContext로 코드 퍼스트 사용하기
- 요약
CHAPTER 8 코드 퍼스트의 차기 버전
- 코드 퍼스트 마이그레이션
- 엔티티 프레임워크 파워 툴
PART II DbContext
CHAPTER 9 DbContext API 소개하기
- 프로젝트에 DbContext API 추가하기
- DbContext API의 주요 기능
- BreakAway 모델로 작업하기
- DbContext 인스턴스 리소스 해제 확인하기
CHAPTER 10 DbContext로 쿼리하기
- LINQ로 엔티티에 쿼리 작성하기
- 모든 데이터 쿼리하기
- 정렬, 필터, 그 외 더 많은 작업에 LINQ 사용하기
- 싱글 개체 찾기
- 로컬 데이터 쿼리하기
- 관련 데이터 로딩하기
- 탐색 속성 컬렉션에 대한 쿼리하기
CHAPTER 11 엔티티의 추가, 변경, 삭제하기
- 싱글 엔티티들로 작업하기
- 관계 정의하기
- 변경 추적
- 스냅샷 변경 추적 사용하기
- 변경 추적 프락시 활성화와 사용법
- 변경 추적 없이 엔티티들 조회하기
CHAPTER 12 N-Tier 응용프로그램을 포함하는 비연결 엔티티들로 작업하기
- 비연결 그래프의 간단한 작업
- N-Tier 과제 탐구하기
- DbContext가 싱글 엔티티의 상태를 설정하기 위해 응답하는 방법
- 엔티티 그래프에서 다중 엔티티에 대한 상태 설정
- 상태를 추적하기 위한 일반적인 접근방법
- 개별적으로 수정된 속성 추적하기
CHAPTER 13 변경 추적 API
- 싱글 엔티티의 추적 정보와 기능 변경하기
- 상태 속성 활용하기
- 현재, 원래, 데이터베이스 값으로 작업하기
- 개별 속성들로 작업하기
- 데이터베이스로부터 엔티티 새로 고치기
- 다중 엔티티의 변경 추적 정보와 동작
- 응용프로그램 시나리오에서 변경 추적 API 사용하기
CHAPTER 14 밸리데이션 API로 유효성 검사
- 유효성 검사 정의와 사용: 개요
- GetValidationResult를 사용한 싱글 개체 검증
- ValidationAttribute 데이터 애노테이션으로 속성 규칙 지정하기
- 유효성 검사 결과 세부사항 확인하기
- ValidationAttributes 탐구하기
- 개별 속성 유효성 검사
- 타입 수준의 유효성 검사 규칙 지정하기
- EF가 유효성 검사를 결합하는 방법
- 다중 개체 유효성 검사
- 변경사항 저장 시 유효성 검사
CHAPTER 15 사용자 정의 유효성 검사
- ValidateEntity 재정의하기
- ValidateEntity를 활용하는 그 외 방법 고려하기
- SaveChanges 사용 시 데이터 업데이트하기
- 유효성 검사가 일어날 때 SaveChanges 재정의하기
- ValidateEntity의 IDictionary 매개 변수 사용하기
- ValidateEntity에서 유효성 검사되는 엔티티 관리하기
CHAPTER 16 고급 시나리오에서 DbContext 사용하기
- ObjectContext와 DbContext 간 이동하기
- SqlFunctions에 노출된 SQL 서버 연산자 활용하기
- DbSet으로 파생된 타입 쿼리하기
- 인터페이스 속성 제한 이해하기
- DbContext와 자동화 테스트 고려하기
- IDbSet과 테스트에서 데이터베이스 영향 감소하기
- DbContext에서 데이터베이스 직접 접근하기
- 응용프로그램에서 여러 대상 컨텍스트 제공하기
CHAPTER 17 엔티티 프레임워크의 차기 버전
- 엔티티 프레임워크의 버전 번호 이해하기
- 엔티티 프레임워크 5.0
이 책의 구성
Chapter 1 코드 퍼스트에 온 것을 환영합니다
1장은 코드 퍼스트에 대해 처음부터 끝까지 수준 높은 미리 보기를 제공한다. 이 샘플 코드는 연습용이 아니다. 또한 독자가 기대하는 기술에 올바르게 접근할 수 있도록 코드 퍼스트에서 지원하지 않는 기술을 논의하는 것으로 마무리한다.
Chapter 2 코드 퍼스트 처음으로 살펴보기
2장에서는 바로 코드로 연습해볼 수 있다. 또한 기본 동작 일부를 보기 위해 간단한 클래스로 작업하면서 두 가지 메커니즘, 즉 데이터 애노테이션과 플루언트 API로 간단한 구성을 수행하는 작업을 코드 퍼스트로 해볼 수 있는 (또는 그냥 따라 읽어볼 수 있도록) 기회를 제공한다.
여러분은 코드 퍼스트가 기본 동작을 사용하기 위해 자동으로 데이터베이스를 생성하는 방법을 볼 것이다. 또한 이어지는 네 장에 걸쳐 코드 퍼스트가 생성하는 기본 데이터베이스를 다룰 것이며, 6장에서는 기존 데이터베이스로 작업하는 방법과 데이터베이스를 좀 더 효율적으로 관리하는 방법을 배울 것이다.
Chapter 3 프로퍼티 어트리뷰트 규칙과 구성 사용하기
3장은 코드 퍼스트 규칙과 구성에 대해 좀 더 깊게 들어가는 세 장 중 도입에 해당한다. 여러분은 어트리뷰트(예를 들어, 문자열 길이)를 추정해 만드는 코드 퍼스트 규칙과 이 규칙이 개념 모델과 데이터베이스에 해석되는 방법을 배울 것이다.
또한 모델과 데이터베이스의 결과를 제어하기 위해 데이터 애노테이션 및 플루언트 API를 사용해 구성을 수행하는 방법도 배울 것이다.
Chapter 4 관계 규칙과 구성 사용하기
4장에서는 클래스 간의 관계 및 모델과 데이터베이스에 있는 관계를 어떻게 코드 퍼스트가 추정하는지 배울 것이다. 코드 퍼스트 규칙은 클래스가 이들 간에 관계를 맺는 시기에 대한 가장 일반적인 시나리오를 유추할 수 있다.
우리는 코드 퍼스트가 클래스 간의 미묘한 차이를 추정하는 작업과 데이터 애노테이션이나 플루언트 API를 다시 구성함으로써 사용자가 원하는 작업을 코드 퍼스트에게 정확히 알리는 방법을 자세히 살펴볼 것이다.
Chapter 5 데이터베이스 매핑 규칙과 구성 사용하기
5장에서는 클래스를 데이터베이스에 매핑하는 방법에 초점을 두었다. 이 정보는 특히 사용자가 기존 데이터베이스에 클래스를 매핑할 때 유용할 것이다. 테이블 이름이나 칼럼 이름, 타입과 같은 간단한 매핑 작업이라도 큰 차이를 만들 수 있다.
여러분은 클래스 간에 정의된 상속 계층을 가질 경우 데이터베이스에 작업하는 기본 매핑 및 Table Per Hierarchy, Table Per Type, Table Per Concrete Type이 데이터베이스에 매핑을 유도하는 방법을 배울 것이다. 또한 여러 테이블에 하나의 엔티티를 매핑하는 방법, 반대로 하나의 테이블에 여러 엔티티를 매핑하는 방법을 배울 것이다.
Chapter 6 데이터베이스 위치, 생성 과정 및 시드 데이터 제어하기
6장에서는 기본 데이터베이스 생성 동작에서 한 단계 나아간 개념을 만나보게 될 것이다. 커넥션 스트링 또는 코드 퍼스트 API의 일부 낮은 레벨의 코드로 작업을 수행하면서 코드 퍼스트가 데이터베이스 이름과 위치를 제어하는 방법을 배울 것이다. 또한 커넥션 같은 다른 작업을 제어하기 위한 몇 가지 유용한 정보를 찾을 수 있을 것이다.
Chapter 7 고급 개념
7장에서 여러분은 몇 가지 고급 기술을 수행하는 방법을 알아보기 위해 코드 퍼스트를 더 깊게 파고들 것이다. 여러분은 이 작업을 제어하면서 모델 동기화 작업에서 데이터베이스를 유지하기 위해 코드 퍼스트가 수행하는 방법을 보게 될 것이다.
또한 기본 모델 캐싱 방법 및 동일한 응용프로그램 인스턴스에서 여러 데이터베이스 공급자를 대상으로 지정하는 등의 문제를 해결하기 위해 재정의하는 방법을 배울 것이다. 그 외 고급 주제들도 다룬다.
Chapter 8 코드 퍼스트의 차기 버전
이 책은 엔티티 프레임워크 4.2 버전을 기반으로 하는 코드 퍼스트의 기능을 다루기 위해 집필되었다. 이 글을 쓸 당시, 많은 Community Technical Previews는 향후 코드 퍼스트 배포에서 얻을 수 있는 일부 기능을 설명했다. 8장은 이러한 향후 배포에서 사용 가능한 정보를 공유하고 있다.
Chapter 9 DbContext API 소개하기
9장에서는 높은 수준의 DbContext API를 전반적으로 개관한다. 우리는 왜 엔티티 프레임워크 팀이 DbContext API 만들기를 결정하고 사용하기 쉽게 만들었는지 배울 것이다. 예제 코드를 보겠지만, 이 장에서는 다루지 않을 것이다.
Chapter 10 DbContext로 쿼리하기
10장에서는 엔티티 프레임워크의 기능을 이용해서 데이터베이스로부터 데이터를 가져오는 법을 배울 것이다. 우리는 어떻게 키로 엔티티를 찾고 주어진 타입의 모든 엔티티들을 로딩할 수 있는지 배울 것이다. LINQ를 사용해서 어떻게 데이터를 정렬하고 필터링하는지도 배울 것이다. 또한 관계된 데이터를 로딩하는 여러 가지 전략도 살펴볼 것이다.
Chapter 11 엔티티의 추가, 변경, 삭제하기
데이터를 쿼리하는 방법을 배웠으니, 이 장에서는 변경하고 데이터베이스에 저장하는 법을 다룰 것이다. 새로운 데이터를 추가하는 방법뿐만 아니라 기존 데이터를 변경하고 삭제하는 방법을 배우고 SaveChanges 메서드를 이용해 저장하는 방법도 배울 것이다.
Chapter 12 N-Tier 응용프로그램을 포함하는 비연결 엔티티들로 작업하기
12장에서는 엔티티 프레임워크를 이용해 엔티티들이 컨텍스트에 의해 관리되지 않는 동안 엔티티들에 만들어진 변경사항을 지속할 수 있는지 알아볼 것이다. 이 상황은 서버 컴포넌트가 데이터를 가져오고 이것을 클라이언트 응용프로그램으로 반환하는 N-Tier 응용프로그램에서 가장 일반적이다. 이 클라이언트 응용프로그램은 데이터를 수정하고 저장하기 위해 서버로 돌려보낸다. 이런 상황을 해결하는 다양한 접근방법을 배우고, 이런 것들을 구현하기 위해 어떻게 변경 추적 API를 사용하는지 배울 것이다.
Chapter 13 변경 추적 API
변경 추적 API는 12장에서 처음 소개되었는데, 13장에서는 변경 추적기의 나머지 기능을 살펴보는 데 집중할 것이다. 우리는 어떻게 엔티티 프레임워크가 엔티티 인스턴스들의 상태를 유지시키는 정보에 액세스할 수 있는지 배울 것이다. 또한 데이터베이스로부터의 엔티티 새로 고침을 포함하는 변경 추적 API로 수행되는 기능도 알아볼 것이다. 예제를 살펴보면서 어떻게 변경 추적 API가 일반적인 응용프로그램의 요구사항을 해결하는지 알아볼 것이다.
Chapter 14 밸리데이션 API로 유효성 검사
14장에서는 DbContext를 통합하고, 데이터베이스로 보내지기 전에 데이터에 대한 변경사항을 검사하는 새로운 밸리데이션 API를 소개한다. 밸리데이션 API가 기존 닷넷에 포함된 유효성 검사 기능을 활용하는 방법을 다룰 것이다. 또한 SaveChanges 파이프라인으로 통합되는 방법과 수동으로 유효성 검사를 발생시키는 방법을 배울 것이다. 유효성 검사 규칙 설정 방법과 데이터가 이런 규칙들을 위반했을 때 유효성 검사가 어떻게 에러를 알아내는지도 배울 것이다.
Chapter 15 사용자 정의 유효성 검사
15장에서는 14장에 선보인 밸리데이션 API의 고급 기능들을 살펴볼 것이다. 로직을 사용자 정의하는 방법과 검사될 엔티티들을 결정하는 로직을 포함한 엔티티들을 유효성 검사하는 방법을 배울 것이다. 우리는 이러한 고급 기능들로 칼럼의 유일성을 검증하는 것과 같은 컨텍스트와 상호 작용하는 유효성 검사를 작성하게 된다. 또한 검증 이외의 작업에 밸리데이션 API를 사용할 때의 위험성을 알려준다.
Chapter 16 고급 시나리오에서 DbContext 사용하기
16장에서는 DbContext API에서 사용 가능한 고급 기능들을 살펴볼 것이다. 우리는 단위 테스트를 위한 기술과 어떻게 데이터베이스를 접속하지 않고 작성할 수 있는지 배울 것이다. 또한 엔티티 프레임워크의 파이프라인을 우회하는 방법과 필요할 때 데이터베이스와 직접 상호 작용하는 방법도 살펴볼 것이다. DbContext API에서 가능한 기능을 벗어날 경우, 어떻게 기본 ObjectContext API를 사용하는지도 알아볼 것이다. 또한 우리의 완전한 전체 모델의 서브셋과 상호 작용할 수 있게 해주는 더 작은 범위의 컨텍스트를 생성하는 것에 대해 알아볼 것이다.
Chapter 17 엔티티 프레임워크의 차기 버전
제2부는 엔티티 프레임워크 4.3에서 사용 가능한 DbContext API의 기능을 중심으로 쓰였다. 제2부를 쓸 당시, 다음에 출시될 DbContext API의 특정 기능들을 시연하는 몇몇 프리뷰가 가능했다. 17장에서는 이와 같은 향후 출시에 대한 가능한 정보를 공유할 것이다.
출판사 리뷰
마이크로소프트의 주요 데이터 액세스 기술인 ADO.NET 엔티티 프레임워크는 《Entity Framework Programming(O’Reilly) 1판》에서 다룬 엔티티 프레임워크의 첫 번째 버전과 닷넷 프레임워크 3.5의 일부분으로 두 가지 주요한 출시를 했다. 2010년에 닷넷 4가 출시되었는데, 이것은 엔티티 프레임워크의 차기 버전인 엔티티 프레임워크 4를 포함한다. 완전히 개정된 《Entity Framework Programming 2판》은 비주얼 스튜디오 2010에서 엔티티 프레임워크를 어떻게 사용하는지 독자들에게 알려주는 데 주력했다.
닷넷 4가 배포되었을 때, 엔티티 프레임워크 팀은 엔티티 프레임워크의 핵심 기술인 엔티티 데이터 모델 구축의 대안을 제공하기 위해 “코드 퍼스트”라는 새로운 에디션을 이미 한창 작업하고 있었다. 코드 퍼스트는 비주얼 디자이너를 사용하지 않고도 기존 클래스에 모델을 생성할 수 있다. 동시에 팀은 엔티티 프레임워크를 사용하기 쉽게 만들기 위해 모든 역량을 동원했다. 그들은 엔티티 프레임워크에서 가장 일반적으로 사용되는 기능과 작업에 초점을 맞춘 DbContext API라는 새로운 API를 만들었다.
제1부의 주 목적은 비즈니스 도메인의 클래스를 기반으로 모델을 만들고 구성하기 위해 코드 퍼스트를 사용하는 방법을 독자에게 알리는 것이다. 코드 퍼스트는 클래스에서 모델을 유추하는 작업의 대부분을 수행하지만, 사용자는 코드 퍼스트로 생성하는 모델에 꽤 많은 영향을 미칠 수 있다.
제1부에서 여러분은 기본에 따라(일명 규칙) 그리고 프로퍼티, 클래스, 관계 및 (코드 퍼스트로 데이터베이스를 생성하거나 기존 데이터베이스를 사용하는 여부에 따라) 매핑하는 데이터베이스를 이해하여 구성을 수행하는 방법을 배울 것이다. 이런 일련의 지식을 통해, 여러분은 새로운 소프트웨어 프로젝트를 구축하는 작업에서 기존 클래스나 새로 생성한 클래스를 활용하면서 엔티티 프레임워크의 이점을 누릴 수 있을 것이다.
제2부는 DbContext API의 기능 사용법을 독자에게 알려주기 위해 최선을 다하고 있다. DbContext 클래스 외에도, 변경 추적하고 동시성 충돌을 처리하는 API를 발전시킨 기능을 수행하는 DbSet과 이미 닷넷에 있는 유효성 검사 기능을 통합한 유효성 검사 API도 설명하고 있다. 여러분은 개별 개체든 개체의 그래프와 관련된 데이터든 상관없이 새로운 API를 사용해 쿼리하고 데이터를 업데이 트하는 방법을 배울 것이다. 또한 변경 추적 기능과 유효성 검사의 이점을 활용하는 법과 API에서 제공하는 고급 기능을 활용한 수많은 샘플과 장점들을 확인할 것이다.
해킹 웹앱: 웹 애플리케이션 해킹 기법과 대응 (0) | 2013.03.15 |
---|---|
실전 SQL Server MVP 53 & 61 (0) | 2013.03.04 |
데이터 웨어하우스 멘토: 실용적 DW/ BI 시스템 구축을 위한 통찰 (0) | 2013.02.26 |
댓글 영역