ASP.NET MVC 4 Entity Framework 스캐폴딩 및 마이그레이션
ASP.NET MVC 4 컨트롤러 메서드에 익숙하거나 "도우미, 양식 및 유효성 검사" 실습 랩을 완료한 경우 애플리케이션 전체에서 데이터 엔터티를 만들고, 업데이트하고, 나열하고, 제거하는 많은 논리가 반복된다는 것을 알고 있어야 합니다. 물론 모델에 조작할 클래스가 여러 개 있는 경우 각 엔터티 작업과 각 보기에 대해 POST 및 GET 작업 메서드를 작성하는 데 상당한 시간을 할애할 수 있습니다.
이 랩에서는 ASP.NET MVC 4 스캐폴딩을 사용하여 애플리케이션 CRUD(만들기, 읽기, 업데이트 및 삭제)의 기준을 자동으로 생성하는 방법을 알아봅니다. 간단한 모델 클래스부터 시작하여 한 줄의 코드를 작성하지 않고 모든 CRUD 작업과 필요한 모든 보기를 포함하는 컨트롤러를 만듭니다. 간단한 솔루션을 빌드하고 실행한 후에는 MVC 논리 및 데이터 조작을 위한 뷰와 함께 애플리케이션 데이터베이스가 생성됩니다.
또한 Entity Framework 마이그레이션을 사용하여 전체 애플리케이션에서 모델 업데이트를 수행하는 것이 얼마나 쉬운지 알아봅니다. Entity Framework 마이그레이션을 사용하면 간단한 단계로 모델이 변경된 후 데이터베이스를 수정할 수 있습니다. 이 모든 것을 염두에 두고 ASP.NET MVC 4의 최신 기능을 활용하여 웹 애플리케이션을 보다 효율적으로 빌드하고 유지 관리할 수 있습니다.
참고 항목
모든 샘플 코드 및 코드 조각은 Microsoft-Web/WebCampTrainingKit 릴리스에서 사용할 수 있는 웹 캠프 교육 키트에 포함되어 있습니다. 이 랩과 관련된 프로젝트는 ASP.NET MVC 4 Entity Framework 스캐폴딩 및 마이그레이션에서 사용할 수 있습니다.
목표
이 실습 랩에서는 다음 방법을 알아봅니다.
- 컨트롤러에서 CRUD 작업에 ASP.NET 스캐폴딩을 사용합니다.
- Entity Framework 마이그레이션을 사용하여 데이터베이스 모델을 변경합니다.
필수 조건
이 랩을 완료하려면 다음 항목이 있어야 합니다.
설정
코드 조각 설치
편의를 위해 이 랩을 따라 관리하는 대부분의 코드를 Visual Studio 코드 조각으로 사용할 수 있습니다. 코드 조각을 설치하려면 .\Source\Setup\CodeSnippets.vsi 파일을 실행합니다.
Visual Studio Code 코드 조각에 익숙하지 않고 사용하는 방법을 알아보려면 이 문서의 부록 "부록 B: 코드 조각 사용"을 참조할 수 있습니다.
연습
다음 연습에서는 이 실습 랩을 구성합니다.
참고 항목
이 연습에는 연습을 완료한 후 가져와야 하는 결과 솔루션이 포함된 End 폴더가 함께 제공됩니다. 연습을 진행하는 데 추가적인 도움이 필요한 경우 이 솔루션을 가이드로 사용할 수 있습니다.
이 랩을 완료하는 데 소요되는 예상 시간: 30분
연습 1: Entity Framework 마이그레이션에서 ASP.NET MVC 4 스캐폴딩 사용
ASP.NET MVC 스캐폴딩은 CRUD 작업을 표준화된 방식으로 빠르게 생성하여 애플리케이션이 데이터베이스 계층과 상호 작용할 수 있도록 하는 데 필요한 논리를 만듭니다.
이 연습에서는 먼저 코드와 함께 ASP.NET MVC 4 스캐폴딩을 사용하여 CRUD 메서드를 만드는 방법을 알아봅니다. 그런 다음 Entity Framework 마이그레이션을 사용하여 데이터베이스의 변경 내용을 적용하는 모델을 업데이트하는 방법을 알아봅니다.
작업 1 - 스캐폴딩을 사용하여 새 ASP.NET MVC 4 프로젝트 만들기
아직 열리지 않은 경우 Visual Studio 2012를 시작합니다.
파일 선택 | 새 프로젝트입니다. 새 프로젝트 대화 상자의 Visual C# | 웹 섹션에서 ASP.NET MVC 4 웹 애플리케이션을 선택합니다. 프로젝트 이름을 MVC4andEFMigrations 로 지정하고 위치를 이 랩의 Source\Ex1-UsingMVC4ScaffoldingEFMigrations 폴더로 설정합니다. 솔루션 이름을 Begin으로 설정하고 솔루션에 대한 디렉터리 만들기가 선택되어 있는지 확인합니다. 확인을 클릭합니다.
새 ASP.NET MVC 4 프로젝트 대화 상자
새 ASP.NET MVC 4 프로젝트 대화 상자에서 인터넷 애플리케이션 템플릿을 선택하고 Razor가 선택한 보기 엔진인지 확인합니다. 확인을 클릭하여 프로젝트를 만듭니다.
새 ASP.NET MVC 4 인터넷 애플리케이션
솔루션 탐색기 모델을 마우스 오른쪽 단추로 클릭하고 추가 | 선택 간단한 클래스 사용자(POCO)를 만드는 클래스입니다. 이름을 Person으로 지정하고 확인을 클릭합니다.
Person 클래스를 열고 다음 속성을 삽입합니다.
(코드 조각 - MVC 4 및 Entity Framework 마이그레이션 ASP.NET - Ex1 사용자 속성)
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MVC4EF.Models { public class Person { public int PersonID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } }
빌드 | 클릭 솔루션을 빌드하여 변경 내용을 저장하고 프로젝트를 빌드합니다.
애플리케이션 빌드
솔루션 탐색기 컨트롤러 폴더를 마우스 오른쪽 단추로 클릭하고 추가 | 선택 컨트롤러.
컨트롤러의 이름을 PersonController로 지정하고 다음 값으로 스캐폴딩 옵션을 완료합니다.
템플릿 드롭다운 목록에서 Entity Framework 옵션을 사용하여 읽기/쓰기 작업 및 뷰가 있는 MVC 컨트롤러를 선택합니다.
모델 클래스 드롭다운 목록에서 Person 클래스를 선택합니다.
데이터 컨텍스트 클래스 목록에서 새 데이터 컨텍스트를 선택합니다...>< 이름을 선택하고 확인을 클릭합니다.
보기 드롭다운 목록에서 Razor가 선택되어 있는지 확인합니다.
스캐폴딩을 사용하여 Person 컨트롤러 추가
추가를 클릭하여 스캐폴딩을 사용하는 사용자에 대한 새 컨트롤러를 만듭니다. 이제 컨트롤러 작업과 뷰를 생성했습니다.
스캐폴딩을 사용하여 Person 컨트롤러를 만든 후
PersonController 클래스를 엽니다. 전체 CRUD 작업 메서드가 자동으로 생성됩니다.
개인 컨트롤러 내부
작업 2 - 애플리케이션 실행
이 시점에서 데이터베이스는 아직 만들어지지 않았습니다. 이 작업에서는 처음으로 애플리케이션을 실행하고 CRUD 작업을 테스트합니다. 데이터베이스는 Code First를 사용하여 즉시 만들어집니다.
F5 키를 눌러 애플리케이션을 실행합니다.
브라우저에서 URL에 /Person을 추가하여 사용자 페이지를 엽니다.
애플리케이션: 첫 번째 실행
이제 개인 페이지를 탐색하고 CRUD 작업을 테스트합니다.
새로 만들기를 클릭하여 새 사용자를 추가합니다. 이름과 성을 입력하고 만들기를 클릭합니다.
새 사람 추가
사용자의 목록에서 항목을 삭제, 편집 또는 추가할 수 있습니다.
개인 목록
세부 정보를 클릭하여 해당 사용자의 세부 정보를 엽니다.
사용자의 세부 정보
브라우저를 닫고 Visual Studio로 돌아갑니다. 한 줄의 코드를 작성하지 않고도 모델에서 뷰에 이르기까지 애플리케이션 전체에서 사용자 엔터티에 대한 전체 CRUD를 만들었습니다.
작업 3 - Entity Framework 마이그레이션을 사용하여 데이터베이스 업데이트
이 작업에서는 Entity Framework 마이그레이션을 사용하여 데이터베이스를 업데이트합니다. Entity Framework 마이그레이션 기능을 사용하여 모델을 변경하고 데이터베이스의 변경 내용을 반영하는 것이 얼마나 쉬운지 확인할 수 있습니다.
패키지 관리자 콘솔을 엽니다. 도구>NuGet 패키지 관리자>패키지 관리자 콘솔을 선택합니다.
패키지 관리자 콘솔에서 다음 명령을 입력합니다.
PMC
Enable-Migrations -ContextTypeName [ContextClassName]
마이그레이션 사용
마이그레이션 사용 명령은 데이터베이스를 초기화하는 스크립트를 포함하는 마이그레이션 폴더를 만듭니다.
마이그레이션 폴더
마이그레이션 폴더에서 Configuration.cs 파일을 엽니다. 클래스 생성자를 찾아 AutomaticMigrationsEnabled 값을 true로 변경합니다.
public Configuration() { AutomaticMigrationsEnabled = true; }
Person 클래스를 열고 사용자의 중간 이름에 대한 특성을 추가합니다. 이 새 특성을 사용하여 모델을 변경합니다.
public class Person { public int PersonID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string MiddleName { get; set; } }
빌드 선택 | 메뉴에서 솔루션을 빌드하여 애플리케이션을 빌드합니다.
애플리케이션 빌드
패키지 관리자 콘솔에서 다음 명령을 입력합니다.
PMC
Add-Migration AddMiddleName
이 명령은 데이터 개체의 변경 내용을 찾은 다음 그에 따라 데이터베이스를 수정하는 데 필요한 명령을 추가합니다.
중간 이름 추가
(선택 사항) 다음 명령을 실행하여 차등 업데이트를 사용하여 SQL 스크립트를 생성할 수 있습니다. 이렇게 하면 데이터베이스를 수동으로 업데이트하거나(이 경우에는 필요하지 않음) 다른 데이터베이스의 변경 내용을 적용할 수 있습니다.
PMC
Update-Database -Script -SourceMigration: $InitialDatabase
SQL 스크립트 생성
SQL 스크립트 업데이트
패키지 관리자 콘솔에서 다음 명령을 입력하여 데이터베이스를 업데이트합니다.
PMC
Update-Database -Verbose
데이터베이스 업데이트
그러면 People 테이블에 MiddleName 열이 추가되어 Person 클래스의 현재 정의와 일치합니다.
데이터베이스가 업데이트되면 컨트롤러 폴더를 마우스 오른쪽 단추로 클릭하고 추가 | 선택 개인 컨트롤러를 다시 추가하는 컨트롤러 (동일한 값으로 완료). 그러면 새 특성을 추가하는 기존 메서드 및 뷰가 업데이트됩니다.
컨트롤러 업데이트
추가를 클릭합니다. 그런 다음, PersonController.cs 덮어쓰는 값과 연결된 뷰 덮어쓰기를 선택하고 확인을 클릭합니다.
컨트롤러 업데이트
Task4 - 애플리케이션 실행
F5 키를 눌러 애플리케이션을 실행합니다.
/Person을 엽니다. 중간 이름 열이 추가된 동안 데이터가 보존되었습니다.
중간 이름이 추가됨
편집을 클릭하면 현재 사용자에게 중간 이름을 추가할 수 있습니다.
요약
이 실습 랩에서는 모델 클래스를 사용하여 MVC 4 스캐폴딩을 ASP.NET CRUD 작업을 만드는 간단한 단계를 배웠습니다. 그런 다음 Entity Framework 마이그레이션을 사용하여 데이터베이스에서 뷰로 애플리케이션에서 종단 간 업데이트를 수행하는 방법을 알아보았습니다.
부록 A: Visual Studio Express 2012 for Web 설치
Microsoft 웹 플랫폼 설치 관리자 사용하여 웹용 Microsoft Visual Studio Express 2012 또는 다른 "Express" 버전을 설치할 수 있습니다. 다음 지침은 Microsoft 웹 플랫폼 설치 관리자 사용하여 Visual Studio Express 2012 for Web을 설치하는 데 필요한 단계를 안내합니다.
https://learn.microsoft.com/iis/extensions/introduction-to-iis-express/iis-express-overview?linkid=9810169(으)로 이동합니다. 또는 웹 플랫폼 설치 관리자를 이미 설치한 경우 해당 설치 관리자를 열고 "Visual Studio Express 2012 for Web with Windows Azure SDK" 제품을 검색할 수 있습니다.
지금 설치를 클릭합니다. 웹 플랫폼 설치 관리자가 없는 경우 먼저 다운로드하여 설치하도록 리디렉션됩니다.
웹 플랫폼 설치 관리자가 열리면 설치를 클릭하여 설치를 시작합니다.
Visual Studio Express 설치
모든 제품의 라이선스 및 사용 약관을 읽고 동의를 클릭하여 계속합니다.
사용 조건 동의
다운로드 및 설치 프로세스가 완료될 때까지 기다립니다.
설치 진행률
설치가 완료되면 마침을 클릭합니다.
설치 완료
종료를 클릭하여 웹 플랫폼 설치 관리자를 닫습니다.
Visual Studio Express for Web을 열려면 시작 화면으로 이동하여 "VS Express" 쓰기를 시작한 다음 VS Express for Web 타일을 클릭합니다.
VS Express for Web 타일
부록 B: 코드 조각 사용
코드 조각을 사용하면 필요한 모든 코드를 손쉽게 사용할 수 있습니다. 랩 문서에서는 다음 그림과 같이 언제 사용할 수 있는지 정확하게 알려줍니다.
Visual Studio 코드 조각을 사용하여 프로젝트에 코드 삽입
키보드를 사용하여 코드 조각을 추가하려면(C#에만 해당)
- 코드를 삽입할 위치에 커서를 놓습니다.
- 공백이나 하이픈 없이 코드 조각 이름 입력을 시작합니다.
- IntelliSense가 일치하는 코드 조각의 이름을 표시하는 것을 확인합니다.
- 올바른 코드 조각을 선택하거나 전체 코드 조각의 이름이 선택될 때까지 계속 입력합니다.
- Tab 키를 두 번 눌러 커서 위치에 코드 조각을 삽입합니다.
코드 조각 이름 입력 시작
Tab 키를 눌러 강조 표시된 코드 조각을 선택합니다.
Tab 키를 다시 누르면 코드 조각이 확장됩니다.
마우스(C#, Visual Basic 및 XML) 1을 사용하여 코드 조각을 추가합니다. 코드 조각을 삽입할 위치를 마우스 오른쪽 단추로 클릭합니다.
- 코드 조각 삽입, 내 코드 조각 삽입을 선택합니다.
- 목록에서 관련 코드 조각을 클릭하여 선택합니다.
코드 조각을 삽입할 위치를 마우스 오른쪽 단추로 클릭하고 코드 조각 삽입을 선택합니다.
목록에서 관련 코드 조각을 클릭하여 선택합니다.