우리는 지금까지 기본적인 MVC의 구조에 대해 살펴보았다. 이번시간에는 실제 데이터베이스와의 연동을 살펴보도록 하겠다. 이로써 MVC로 좀더 실무에 근접한 어플리케이션을 만들수 있을것이다.

 

 

Entity Framework
엔티티 프레임워크는 Microsoft 에서 개발한 ORM 모델중의 하나로써 , 기존의 ADO.NET 보다 좀더 구조적이고 객체적으로 접근하기 위해서 고안되었다. 이 엔티티 프레임워크는 또한 MS에서 개발된 기술이기 때문에 , MVC와도 좋은 호환성을 보여준다.

엔티티 프레임워크에 대한 글은 이곳 SQLER 에서 이지선 MVP님이 소개해주시고 있으니 한번 살펴보기 바란다.

이번장에서는 EF 와 MVC의 연동만을 다루려고 한다.

 

6_0.gif
[그림 : Entity Framework  의 기본적인 구조]

 

 


MVC 스캐폴딩


본디 스캐폴딩이란 기술은 Ruby on Rails 에서 처음 선보였던 기술이다. 이는 Model 을 투영해서 CRUD(Create Read Update Delete)를 한번에 코드로 뽑아내주는것으로써  Ruby on Rails 가 가장 인기를 얻게된 원동력이기도 하다. MVC도 물론 이런 스캐폴딩을 ASP.NET MVC 전반에 걸쳐 폭 넓게 지원하고 있다. 특히 EF와의 연동으로 인해 이는 더 큰 효과를 보여주고 있다.

 

 

MVC와 EF를 연동한 스캐폴딩 구현
1. 먼저 기존프로젝트의 Model 에서 Data 탭을 선택하고 템플릿중에 ADO.NET Entity Data Model 을 선택하자.
 6_1.png

2. 엔티티 프레임워크를 설치하게 되면 처음에 자신이 참조해야할 데이터베이스를 찾게 된다. 이때 미리 설정해놓은 테이블을 체크하고 생성하게 되면 정상적으로 EF 가 생성되게 된다.
 

6_2.png
[그림 : 생성된 Entity Framework]

 

 

3. 이제 컨트롤러를 만들시간이다. 기존에 만들었던 컨트롤러와 달리 EntityFramework 을 추가하고 나면 다음과 같이 컨트롤러를 만드는 창이 바뀐다. 
 6_3.png


 

4. 여기서 아래그림과 같이 세팅한다.

6_4.png

 Template 는 어떤 스캐폴딩을 사용할것인지를 정하는건데 필자가 선택한건 모든 상황에 대한(CRUD) 뷰를 만드는것이다. ModelClass 는 실제 모델링에 사용되었던 테이블명을 말한다. 마지막으로 Datacontext 는 Entity Framework 의 이름을 지칭한다.
 

 

6_5.png 
 

CRUD 모든 로직이 완성된 코드 전체가 자동생성 된것을 확인할수 있다.

 

 

Summary


Entity Framework 의 스캐폴딩은 데이터베이스에 의거한 당신의 로직을 가장 쉬운방법으로 적용하는 방법을 보여준다. 이것은 매우 쉬울뿐 아니라 다른 어떠한 추가적인 클래스도 필요 없다. MVC는 이 개발 방법론을 가장 효율적으로 적용하기 좋은 대표적인 프로젝트 템플릿이 될것임엔 두말할 여지가 없다. 다음장에서는 데이터를 연동할때 가장 필수적인 유효성 검사에 대해 알아보도록 하겠습니다.



ASP.NET MVC3 시리즈 강좌 리스트
[ASP.NET MVC3강좌] 1. MVC(Model- View – Controller) 란 무엇인가.
[ASP.NET MVC3강좌] 2. MVC 환경 세팅
[ASP.NET MVC3강좌] 3. HelloWorld MVC
[ASP.NET MVC3강좌] 4. Layout , Partial Page
[ASP.NET MVC3강좌] 5. Model 을 View에서 표현하기
[ASP.NET MVC3강좌] 6. MVC의 매력적인 기능 스캐폴딩!(With EF)
[ASP.NET MVC3강좌] 7. 유효성 검사
[ASP.NET MVC3강좌] 8. ModelBinder
[ASP.NET MVC3강좌] 9. MVC ActionResult 종류 살펴보기
[ASP.NET MVC3강좌] 10. MVC 처리 프로세스 & ActionFilter
[ASP.NET MVC3강좌] 11. Global.asax
[ASP.NET MVC3강좌] 12. (번외편) Repository Pattern
[ASP.NET MVC3강좌] 13. MEF(Managed Extensibility Framework) in MVC
[ASP.NET MVC3강좌] 14. Javascript in MVC
[ASP.NET MVC3강좌] 15. Javascript Intellicense in Visual Studio
[ASP.NET MVC3강좌] 16. JSON in MVC - 1
[ASP.NET MVC3강좌] 17. JSON in MVC - 2
[ASP.NET MVC3강좌] 18. HTML5 in MVC
[ASP.NET MVC3강좌] 19. MVC Tips 1 - HandleUnknownAction
[ASP.NET MVC3강좌] 20. MVC Tips 2 - Cache ActionFilter





profile

ASP.NET MVP 2009~2011