다음을 통해 공유


자습서: ASP.NET MVC 앱을 사용하여 EF Database First 데이터베이스 변경

MVC, Entity Framework 및 ASP.NET 스캐폴딩을 사용하여 기존 데이터베이스에 대한 인터페이스를 제공하는 웹 애플리케이션을 만들 수 있습니다. 이 자습서 시리즈에서는 사용자가 데이터베이스 테이블에 있는 데이터를 표시, 편집, 만들기 및 삭제할 수 있도록 하는 코드를 자동으로 생성하는 방법을 보여 줍니다. 생성된 코드는 데이터베이스 테이블의 열에 해당합니다.

이 자습서에서는 데이터베이스 구조를 업데이트하고 웹 애플리케이션 전체에서 해당 변경 사항을 전파하는 데 중점을 둡니다.

이 자습서에서는 다음을 수행합니다.

  • 열 추가
  • 뷰에 속성 추가

사전 요구 사항

열 추가

데이터베이스의 테이블 구조를 업데이트하는 경우 변경 내용이 데이터 모델, 뷰 및 컨트롤러에 전파되는지 확인해야 합니다.

이 자습서에서는 학생 테이블에 새 열을 추가하여 학생의 중간 이름을 기록합니다. 이 열을 추가하려면 데이터베이스 프로젝트를 열고 Student.sql 파일을 엽니다. 디자이너 또는 T-SQL 코드를 통해 NVARCHAR(50)이고 NULL 값을 허용하는 MiddleName 이라는 열을 추가합니다.

데이터베이스 프로젝트(또는 F5)를 시작하여 이 변경 내용을 로컬 데이터베이스에 배포합니다. 새 필드가 테이블에 추가됩니다. SQL Server 개체 탐색기 표시되지 않으면 창에서 새로 고침 단추를 클릭합니다.

새 열 표시

새 열은 데이터베이스 테이블에 있지만 현재 데이터 모델 클래스에는 존재하지 않습니다. 새 열을 포함하도록 모델을 업데이트해야 합니다. Models 폴더에서 ContosoModel.edmx 파일을 열어 모델 다이어그램을 표시합니다. Student 모델에는 MiddleName 속성이 포함되어 있지 않습니다. 디자인 화면에서 아무 곳이나 마우스 오른쪽 단추로 클릭하고 데이터베이스에서 모델 업데이트를 선택합니다.

업데이트 마법사에서 새로 고침 탭을 선택한 다음 테이블>dbo>Student를 선택합니다. Finish를 클릭합니다.

업데이트 프로세스가 완료되면 데이터베이스 다이어그램에 새 MiddleName 속성이 포함됩니다. ContosoModel.edmx 파일을 저장합니다. 새 속성이 Student.cs 클래스로 전파되려면 이 파일을 저장해야 합니다. 이제 데이터베이스와 모델을 업데이트했습니다.

솔루션을 빌드합니다.

뷰에 속성 추가

아쉽게도 뷰에는 여전히 새 속성이 포함되어 있지 않습니다. 두 가지 옵션이 있는 보기를 업데이트하려면 Student 클래스에 대한 스캐폴딩을 다시 추가하여 보기를 다시 생성하거나 기존 보기에 새 속성을 수동으로 추가할 수 있습니다. 이 자습서에서는 자동으로 생성된 뷰에 대해 사용자 지정된 변경 내용을 적용하지 않았기 때문에 스캐폴딩을 다시 추가합니다. 뷰를 변경하고 해당 변경 내용을 손실하지 않으려는 경우 속성을 수동으로 추가하는 것이 좋습니다.

보기를 다시 만들려면 보기에서 Students 폴더를 삭제하고 StudentsController를 삭제합니다. 그런 다음 컨트롤러 폴더를 마우스 오른쪽 단추로 클릭하고 학생 모델에 대한 스캐폴딩을 추가합니다. 다시 컨트롤러 이름을 StudentsController로 지정합니다. 추가를 선택합니다.

솔루션을 다시 빌드합니다. 이제 뷰에 MiddleName 속성이 포함되었습니다.

중간 이름 표시

다음 단계

이 자습서에서는 다음을 수행합니다.

  • 열 추가됨
  • 뷰에 속성을 추가했습니다.

다음 자습서로 이동하여 학생 레코드에 대한 세부 정보를 표시하기 위해 보기를 사용자 지정하는 방법을 알아봅니다.