다음을 통해 공유


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 마이그레이션을 사용하여 데이터베이스 모델을 변경합니다.

필수 조건

이 랩을 완료하려면 다음 항목이 있어야 합니다.

  • 용 Microsoft Visual Studio Express 2012 이상(설치 방법에 대한 지침은 부록 A를 참조하세요).

설정

코드 조각 설치

편의를 위해 이 랩을 따라 관리하는 대부분의 코드를 Visual Studio 코드 조각으로 사용할 수 있습니다. 코드 조각을 설치하려면 .\Source\Setup\CodeSnippets.vsi 파일을 실행합니다.

Visual Studio Code 코드 조각에 익숙하지 않고 사용하는 방법을 알아보려면 이 문서의 부록 "부록 B: 코드 조각 사용"을 참조할 수 있습니다.


연습

다음 연습에서는 이 실습 랩을 구성합니다.

  1. Entity Framework 마이그레이션에서 ASP.NET MVC 4 스캐폴딩 사용

참고 항목

이 연습에는 연습을 완료한 후 가져와야 하는 결과 솔루션이 포함된 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 프로젝트 만들기

  1. 아직 열리지 않은 경우 Visual Studio 2012를 시작합니다.

  2. 파일 선택 | 새 프로젝트입니다. 새 프로젝트 대화 상자의 Visual C# | 웹 섹션에서 ASP.NET MVC 4 웹 애플리케이션을 선택합니다. 프로젝트 이름을 MVC4andEFMigrations 로 지정하고 위치를 이 랩의 Source\Ex1-UsingMVC4ScaffoldingEFMigrations 폴더로 설정합니다. 솔루션 이름을 Begin으로 설정하고 솔루션에 대한 디렉터리 만들기가 선택되어 있는지 확인합니다. 확인을 클릭합니다.

    새 ASP.NET MVC 4 프로젝트 대화 상자

    새 ASP.NET MVC 4 프로젝트 대화 상자

  3. 새 ASP.NET MVC 4 프로젝트 대화 상자에서 인터넷 애플리케이션 템플릿을 선택하고 Razor선택한 보기 엔진인지 확인합니다. 확인을 클릭하여 프로젝트를 만듭니다.

    새 ASP.NET MVC 4 인터넷 애플리케이션

    새 ASP.NET MVC 4 인터넷 애플리케이션

  4. 솔루션 탐색기 모델을 마우스 오른쪽 단추로 클릭하고 추가 | 선택 간단한 클래스 사용자(POCO)를 만드는 클래스입니다. 이름을 Person으로 지정하고 확인을 클릭합니다.

  5. 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; }        
        }
    }
    
  6. 빌드 | 클릭 솔루션을 빌드하여 변경 내용을 저장하고 프로젝트를 빌드합니다.

    스크린샷은 빌드 메뉴가 있는 Visual Studio Express 2012를 보여 줍니다. 그런 다음 솔루션 빌드가 선택되어 있습니다.

    애플리케이션 빌드

  7. 솔루션 탐색기 컨트롤러 폴더를 마우스 오른쪽 단추로 클릭하고 추가 | 선택 컨트롤러.

  8. 컨트롤러의 이름을 PersonController로 지정하고 다음 값으로 스캐폴딩 옵션을 완료합니다.

    1. 템플릿 드롭다운 목록에서 Entity Framework 옵션을 사용하여 읽기/쓰기 작업 및 뷰가 있는 MVC 컨트롤러를 선택합니다.

    2. 모델 클래스 드롭다운 목록에서 Person 클래스를 선택합니다.

    3. 데이터 컨텍스트 클래스 목록에서 새 데이터 컨텍스트를 선택합니다...>< 이름을 선택하고 확인을 클릭합니다.

    4. 보기 드롭다운 목록에서 Razor선택되어 있는지 확인합니다.

      스캐폴딩을 사용하여 Person 컨트롤러 추가

      스캐폴딩을 사용하여 Person 컨트롤러 추가

  9. 추가를 클릭하여 스캐폴딩을 사용하는 사용자에 대한 새 컨트롤러를 만듭니다. 이제 컨트롤러 작업과 뷰를 생성했습니다.

    스캐폴딩을 사용하여 Person 컨트롤러를 만든 후

    스캐폴딩을 사용하여 Person 컨트롤러를 만든 후

  10. PersonController 클래스를 엽니다. 전체 CRUD 작업 메서드가 자동으로 생성됩니다.

개인 컨트롤러 내부

개인 컨트롤러 내부

작업 2 - 애플리케이션 실행

이 시점에서 데이터베이스는 아직 만들어지지 않았습니다. 이 작업에서는 처음으로 애플리케이션을 실행하고 CRUD 작업을 테스트합니다. 데이터베이스는 Code First를 사용하여 즉시 만들어집니다.

  1. F5 키를 눌러 애플리케이션을 실행합니다.

  2. 브라우저에서 URL에 /Person을 추가하여 사용자 페이지를 엽니다.

    애플리케이션 첫 실행

    애플리케이션: 첫 번째 실행

  3. 이제 개인 페이지를 탐색하고 CRUD 작업을 테스트합니다.

    1. 새로 만들기를 클릭하여 새 사용자를 추가합니다. 이름과 성을 입력하고 만들기를 클릭합니다.

      새 사람 추가

      새 사람 추가

    2. 사용자의 목록에서 항목을 삭제, 편집 또는 추가할 수 있습니다.

      person list

      개인 목록

    3. 세부 정보를 클릭하여 해당 사용자의 세부 정보를 엽니다.

      사용자의 세부 정보

      사용자의 세부 정보

  4. 브라우저를 닫고 Visual Studio로 돌아갑니다. 한 줄의 코드를 작성하지 않고도 모델에서 뷰에 이르기까지 애플리케이션 전체에서 사용자 엔터티에 대한 전체 CRUD를 만들었습니다.

작업 3 - Entity Framework 마이그레이션을 사용하여 데이터베이스 업데이트

이 작업에서는 Entity Framework 마이그레이션을 사용하여 데이터베이스를 업데이트합니다. Entity Framework 마이그레이션 기능을 사용하여 모델을 변경하고 데이터베이스의 변경 내용을 반영하는 것이 얼마나 쉬운지 확인할 수 있습니다.

  1. 패키지 관리자 콘솔을 엽니다. 도구>NuGet 패키지 관리자>패키지 관리자 콘솔을 선택합니다.

  2. 패키지 관리자 콘솔에서 다음 명령을 입력합니다.

    PMC

    Enable-Migrations -ContextTypeName [ContextClassName]
    

    마이그레이션을 사용하도록 설정

    마이그레이션 사용

    마이그레이션 사용 명령은 데이터베이스를 초기화하는 스크립트를 포함하는 마이그레이션 폴더를 만듭니다.

    마이그레이션 폴더

    마이그레이션 폴더

  3. 마이그레이션 폴더에서 Configuration.cs 파일을 엽니다. 클래스 생성자를 찾아 AutomaticMigrationsEnabled 값을 true로 변경합니다.

    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }
    
  4. Person 클래스를 열고 사용자의 중간 이름에 대한 특성을 추가합니다. 이 새 특성을 사용하여 모델을 변경합니다.

    public class Person
    {
        public int PersonID { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string MiddleName { get; set; }
    }
    
  5. 빌드 선택 | 메뉴에서 솔루션을 빌드하여 애플리케이션을 빌드합니다.

    스크린샷은 빌드 메뉴를 보여 줍니다. 그런 다음 솔루션 빌드가 선택되었습니다.

    애플리케이션 빌드

  6. 패키지 관리자 콘솔에서 다음 명령을 입력합니다.

    PMC

    Add-Migration AddMiddleName
    

    이 명령은 데이터 개체의 변경 내용을 찾은 다음 그에 따라 데이터베이스를 수정하는 데 필요한 명령을 추가합니다.

    중간 이름 추가

    중간 이름 추가

  7. (선택 사항) 다음 명령을 실행하여 차등 업데이트를 사용하여 SQL 스크립트를 생성할 수 있습니다. 이렇게 하면 데이터베이스를 수동으로 업데이트하거나(이 경우에는 필요하지 않음) 다른 데이터베이스의 변경 내용을 적용할 수 있습니다.

    PMC

    Update-Database -Script -SourceMigration:
    
    $InitialDatabase
    

    SQL 스크립트 생성

    SQL 스크립트 생성

    SQL 스크립트 업데이트

    SQL 스크립트 업데이트

  8. 패키지 관리자 콘솔에서 다음 명령을 입력하여 데이터베이스를 업데이트합니다.

    PMC

    Update-Database -Verbose
    

    데이터베이스 업데이트

    데이터베이스 업데이트

    그러면 People 테이블에 MiddleName 열이 추가되어 Person 클래스의 현재 정의와 일치합니다.

  9. 데이터베이스가 업데이트되면 컨트롤러 폴더를 마우스 오른쪽 단추로 클릭하고 추가 | 선택 개인 컨트롤러를 다시 추가하는 컨트롤러 (동일한 값으로 완료). 그러면 새 특성을 추가하는 기존 메서드 및 뷰가 업데이트됩니다.

    컨트롤러 업데이트 추가

    컨트롤러 업데이트

  10. 추가를 클릭합니다. 그런 다음, PersonController.cs 덮어쓰는 값연결된 뷰 덮어쓰기를 선택하고 확인을 클릭합니다.

컨트롤러 덮어쓰기 추가

컨트롤러 업데이트

Task4 - 애플리케이션 실행

  1. F5 키를 눌러 애플리케이션을 실행합니다.

  2. /Person을 엽니다. 중간 이름 열이 추가된 동안 데이터가 보존되었습니다.

    중간 이름이 추가됨

    중간 이름이 추가됨

  3. 편집을 클릭하면 현재 사용자에게 중간 이름을 추가할 수 있습니다.

    Middle Name Edition


요약

이 실습 랩에서는 모델 클래스를 사용하여 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을 설치하는 데 필요한 단계를 안내합니다.

  1. 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" 제품을 검색할 수 있습니다.

  2. 지금 설치를 클릭합니다. 웹 플랫폼 설치 관리자없는 경우 먼저 다운로드하여 설치하도록 리디렉션됩니다.

  3. 웹 플랫폼 설치 관리자가 열리면 설치를 클릭하여 설치를 시작합니다.

    Visual Studio Express 설치

    Visual Studio Express 설치

  4. 모든 제품의 라이선스 및 사용 약관을 읽고 동의를 클릭하여 계속합니다.

    사용 조건 동의

    사용 조건 동의

  5. 다운로드 및 설치 프로세스가 완료될 때까지 기다립니다.

    설치 진행률

    설치 진행률

  6. 설치가 완료되면 마침을 클릭합니다.

    설치 완료

    설치 완료

  7. 종료를 클릭하여 웹 플랫폼 설치 관리자를 닫습니다.

  8. Visual Studio Express for Web을 열려면 시작 화면으로 이동하여 "VS Express" 쓰기를 시작한 다음 VS Express for Web 타일을 클릭합니다.

    VS Express for Web 타일

    VS Express for Web 타일

부록 B: 코드 조각 사용

코드 조각을 사용하면 필요한 모든 코드를 손쉽게 사용할 수 있습니다. 랩 문서에서는 다음 그림과 같이 언제 사용할 수 있는지 정확하게 알려줍니다.

Visual Studio 코드 조각을 사용하여 프로젝트에 코드 삽입

Visual Studio 코드 조각을 사용하여 프로젝트에 코드 삽입

키보드를 사용하여 코드 조각을 추가하려면(C#에만 해당)

  1. 코드를 삽입할 위치에 커서를 놓습니다.
  2. 공백이나 하이픈 없이 코드 조각 이름 입력을 시작합니다.
  3. IntelliSense가 일치하는 코드 조각의 이름을 표시하는 것을 확인합니다.
  4. 올바른 코드 조각을 선택하거나 전체 코드 조각의 이름이 선택될 때까지 계속 입력합니다.
  5. Tab 키를 두 번 눌러 커서 위치에 코드 조각을 삽입합니다.

코드 조각 이름 입력 시작

코드 조각 이름 입력 시작

Tab 키를 눌러 강조 표시된 코드 조각을 선택합니다.

Tab 키를 눌러 강조 표시된 코드 조각을 선택합니다.

Tab 키를 다시 누르면 코드 조각이 확장됩니다.

Tab 키를 다시 누르면 코드 조각이 확장됩니다.

마우스(C#, Visual Basic 및 XML) 1을 사용하여 코드 조각을 추가합니다. 코드 조각을 삽입할 위치를 마우스 오른쪽 단추로 클릭합니다.

  1. 코드 조각 삽입, 내 코드 조각 삽입을 선택합니다.
  2. 목록에서 관련 코드 조각을 클릭하여 선택합니다.

코드 조각을 삽입할 위치를 마우스 오른쪽 단추로 클릭하고 코드 조각 삽입을 선택합니다.

코드 조각을 삽입할 위치를 마우스 오른쪽 단추로 클릭하고 코드 조각 삽입을 선택합니다.

목록에서 관련 코드 조각을 클릭하여 선택합니다.

목록에서 관련 코드 조각을 클릭하여 선택합니다.