통합검색
· 마을서비스란?  · 포럼마을  · 일반마을  · 테마마을  · 마을랭킹  · 활동왕
· 덱스퍼트란?  · TECBOX   · PRSBOX   · 이용안내  
· DEXT제품군  · 솔루션베이  · S/W & ESD 컴포넌트
· 프로그램베이
· LiveSeminar  · LiveConference
WPF & Silverlight 포럼마을입니다.
  마을등급 WPF & Silverlight   이 마을은 포럼마을 입니다이 마을은 자유가입제 마을 입니다 마을소개 페이지로 이동 전입신청
마을촌장촌장 서학수 주민 728 since 2008-07-17
우리마을 공지사항
질문&답변
강좌&팁
자유게시판
자료실
앨범
[마을 게시판]
WPF 강좌
랑데브 게시판
칼럼 게시판
개발자 고충상담
Dev Talk
자유토론방
벼룩시장
재나미 우스개
구인/프로젝트 정보
사람인 채용 게시판
  고객지원 게시판
마이 데브피아
 나의 e-Money 내역
 활동왕 My Page
 스크랩한 게시글보기
 쪽지관리
 주소록관리

 강좌&팁
 SL5 DBApp 1 - SQL Server Compact 4.0  | Silverlight 2011-06-20 오후 11:34:53
 kaki104  kaki104님께 메시지 보내기kaki104님을 내 주소록에 추가합니다.kaki104님의 개인게시판 가기 번호: 157 추천:0  / 읽음:12,115

Silverlight5 DBApp - SQL Server Compact 4.0

 

1. SQL Server Compact 4.0란?

 

http://blogs.technet.com/b/dataplatforminsider/archive/2011/01/13/microsoft-sql-server-compact-4-0-is-available-for-download-and-use-with-webmatrix.aspx

 

1-1. 한마디로는 엠에스에서 제공하는 공짜 DB로 간단한 프로그램의 DB로 사용 할 수 있는 작고 가벼운 DB이다. Windows Phone 7 Mango에서도 사용 가능하다.

 

1-2. 몇가지 특징에 대해서 설명이 나오는데 주목해야할 부분은 ADO.NET Entity Framework 4 (.NET FX 4) code-first and server generated keys 부분이다.

 

1-3. Code-First :

우리가 프로그램을 개발을 할때 기존에 사용하는 방식은 분석/설계하고 테이블명세서 만들고, 테이블 만들고, 쿼리 만들고..머 그런 스타일로 만들게 된다.

 

여기서 이야기하는 Code-First는 분석/설계하고 클래스를 만들고 클래스셋을 DBContext라는 것을 이용해서 묶음으로 만들고 실행하면 바로 데이터베이스가 생성되고 테이블이 만들어지고 필드가 추가된다. 그리고 우린 클래스셋에 하나를 추가하고 SaveChange()를 호출하면 Insert가 클래스셋에서 하나를 삭제하고 SaveChange()를 호출하면 Delete가 실행된다.

그런것을 코드퍼스트라고 한다. 클래스하나 = 레코드, 클래스셋 = 테이블이 되는 것이다.

 

* DBApp에서는 Model-First를 사용 한다.

EF 4.1에서 모델을 만들고, 모델을 기반으로 테이블을 만들고, Code를 생성한다.

 

 

* 시작하기 전에

** VS2010 -> Tools -> Extension Manager -> Productivity Power Tools를 설치하는 것이 좋다.

    설치가 되면 몇 몇 UI가 모양이 변경되기 때문에, 제공되는 스삿과 틀릴 수 있기 때문이다.

 

** WebMetrix -> VS2010 SP1이 설치 되어있어야 작업하기가 수월하다.

 

 

2. 프로젝트 시작

2-1. File -> New -> Project -> Silverlight Application 선택 -> 이름은 DBApp

 

2-2. Solution 'DBApp' -> 오른쪽 버튼 -> Add -> New Project -> Class Library -> 이름 DAL 입력

 

2-3. Class1.cs 파일 삭제

 

2-4. DAL -> 오른쪽 버튼 -> Add -> New Item -> ADO.NET Entity Data Model -> 이름 EF41Model

       -> Entity Data Model Wizard 팝업 출력 -> Empty model -> Finish

 

2-5. 모델을 만든다.

 

Id만 Int64형으로 만들고 나머지는 String형으로 한다.

 

* 중간에 연결선 만들기

빈곳에서 오른쪽 버튼 -> Add -> Association -> 내용 확인하고 OK

 

2-6. 빈곳에서 오른쪽 버튼 -> Generate Database from Model -> Generate Database Wizard 팝업

       -> New Connetion -> Connection Properties 팝업 -> Change -> Change Data Source 팝업

       -> Microsoft SQL Server Compact 3.5 -> OK -> Connection Properties 팝업 복귀

       -> Create -> 데이터베이스 위치 및 이름 지정 -> OK -> Connection Properties 팝업 복귀

       -> OK -> Next -> Finish

 

* VS2010의 엔티티 프레임웩에서는 아직 SQL Server Compact 4.0을 직접 만들고 연결 할 수 없다.

수동으로 작업해야한다.

 

2-7. 여기 까지 작업 후 F6키를 눌러 컴파일 한다.

 

2-8. 일단 Compact 4.0 파일을 만든다.

 

Server Explorer -> Data Connections -> Add Connection -> Add Connection 팝업 -> Change -> Microsoft SQL Server Compact 4.0 -> OK -> Create -> 데이터베이스 위치 및 이름 지정 -> OK -> Connection Properties 팝업 복귀

-> OK -> Next -> Finish

 

이렇게해서 Compact 4.0 파일을 만든다.

 

2-9. Compact 3.5 파일을 Compact 4.0 파일로 교체하기

 

DAL 프로젝트에 App.Config 파일 열기 -> System.Data.SqlServerCe.3.5를 System.Data.SqlServerCe.4.0 으로 변경

-> Data Source=E:\silverlight\DB3.5.sdf 파일명을 Data Source=E:\silverlight\DB4.0.sdf으로 변경

 

EF41Model.edmx 오른쪽 클릭 -> Open With -> XML(Text) Editor -> Provider="System.Data.SqlServerCe.3.5"를

Provider="System.Data.SqlServerCe.4.0"로 변경 -> ProviderManifestToken="3.5"을 ProviderManifestToken="4.0"으로 변경

 

2-10. F6 빌드에러가 없으면 정상적으로 변경이 된 것이다.

 

2-11. 데이터베이스와 테이블 생성

EF41Model.edmx.sqlce -> 마우스 오른쪽 -> Execute SQL -> Connect to SQL Server Compact Edition 팝업 -> 데이터베이스 파일 선택 -> Connect -> Command(s) completed successfully. 메시지 출력

 

2-12. Code 생성

EF41Model.edmx -> 마우스 오른쪽 -> Add Code Generation Item ->

 

화면이 위와 같이 나온 상태에서 DbContext Generator를 선택한다. 이름은 TwitterModel.tt로 한다.

 

실행되면 TwitterModel.Context.tt, TwitterModel.tt가 프로젝트에 추가된다.

 

 

2-13. F6키를 눌러 컴파일 한다.

 

 

3. 포인트

3-1. 모델만 만들면 테이블만들기도 자동, 클래스 만들기도 자동으로 만들어진다.

3-2. Compact 4.0은 인메모리 DB이다.

3-3. Association은 오브젝트끼리의 연결자체를 저장할 수 있다.

 

 

4. 프로젝트를 새로 만들면서 작성한 것이 아니라서 중간에 특정 내용이 빠졌을 수도 있다. 혹시 위와 같이 했는데 오류가 나면 리플로 남겨주기 바란다. 그리고, 이론에 대한 것은 구글을 통해서 검색을 하면 여러자료 들이 나오니 참고 하기 바란다.

 

소스는 마지막에 한번 올리도록 하겠다. 먼저 직접 만들어 보기 바란다.

코멘트쓰기
  좋음   놀람   궁금   화남   슬픔   최고   침묵   시무룩   부끄럼   난감
* 코멘트는 500자 이내(띄어쓰기 포함)로 적어주세요.
목록 보기   지금 보고 계시는 글을 회원님의 my Mblog >> 스크랩에 넣어두고 다음에 바로 보실 수 있습니다.  
회사소개  |   개인정보취급방침  |  제휴문의  |   광고문의  |   E-Mail 무단수집거부  |   고객지원  |   이용안내  |   세금계산서
사업자등록번호 안내: 220-81-90008 / 통신판매업신고번호 제 2017-서울구로-0055호 / 대표: 홍영준, 서민호
08390, 서울시 구로구 디지털로32길 30, 1211호 / TEL. 02_6719_6200 / FAX. 02-6499-1910
Copyright ⓒ (주) 데브피아. All rights reserved.