모델 바인딩 및 web forms를 사용 하 여 데이터 검색 및 표시Retrieving and displaying data with model binding and web forms

이 자습서 시리즈에서는 모델 바인딩을 사용 하 여 ASP.NET Web Forms 프로젝트의 기본 사항을 보여 줍니다.This tutorial series demonstrates basic aspects of using model binding with an ASP.NET Web Forms project. 모델 바인딩 보다 직관적인 데이터 원본 개체 (예: ObjectDataSource 또는 SqlDataSource) 처리 하는 보다 데이터 상호 작용 하 게 합니다.Model binding makes data interaction more straight-forward than dealing with data source objects (such as ObjectDataSource or SqlDataSource). 이 시리즈 소개 자료를 사용 하 여 시작 하 고 나중에 자습서에서 고급 개념을 이동 합니다.This series starts with introductory material and moves to more advanced concepts in later tutorials.

모델 바인딩 패턴은 모든 데이터 액세스 기술을 사용 하 여 작동합니다.The model binding pattern works with any data access technology. 이 자습서에서는 Entity Framework를 사용 하는 하지만 가장 익숙한 데이터 액세스 기술을 사용할 수 있습니다.In this tutorial, you will use Entity Framework, but you could use the data access technology that is most familiar to you. GridView, ListView, DetailsView 또는 FormView 컨트롤과 같은 데이터 바인딩된 서버 컨트롤에서 선택, 업데이트, 삭제 및 데이터 만들기에 대 한 사용 하는 방법의 이름을 지정할 수 있습니다.From a data-bound server control, such as a GridView, ListView, DetailsView, or FormView control, you specify the names of the methods to use for selecting, updating, deleting, and creating data. 이 자습서에서는 SelectMethod에 대 한 값을 지정 합니다.In this tutorial, you will specify a value for the SelectMethod.

이 메서드 내에서 데이터를 검색 하기 위한 논리를 제공 합니다.Within that method, you provide the logic for retrieving the data. 다음 자습서에서는 DeleteMethod UpdateMethod, InsertMethod 값을 설정 합니다.In the next tutorial, you will set values for UpdateMethod, DeleteMethod and InsertMethod.

할 수 있습니다 다운로드 전체 프로젝트에서 C# 또는 Visual Basic입니다.You can download the complete project in C# or Visual Basic. 다운로드 가능한 코드는 Visual Studio 2012 이상에 작동합니다.The downloadable code works with Visual Studio 2012 and later. 이 자습서에 나와 있는 Visual Studio 2017 템플릿은 약간 다른 Visual Studio 2012 템플릿을 사용 합니다.It uses the Visual Studio 2012 template, which is slightly different than the Visual Studio 2017 template shown in this tutorial.

이 자습서에서 Visual Studio에서 응용 프로그램을 실행 합니다.In the tutorial you run the application in Visual Studio. 호스팅 공급자에 응용 프로그램을 배포 하 고 인터넷을 통해 사용할 수 있도록 수도 있습니다.You can also deploy the application to a hosting provider and make it available over the internet. Microsoft에서 제공 하는 무료 웹 호스팅에 최대 10 개의 웹 사이트를Microsoft offers free web hosting for up to 10 web sites in a
무료 Azure 평가판 계정합니다.free Azure trial account. Visual Studio 웹 프로젝트를 Azure App Service Web Apps를 배포 하는 방법에 대 한 내용은 참조는 Visual Studio를 사용 하 여 ASP.NET 웹 배포 시리즈입니다.For information about how to deploy a Visual Studio web project to Azure App Service Web Apps, see the ASP.NET Web Deployment using Visual Studio series. 이 자습서에는 Azure SQL Database로 SQL Server 데이터베이스를 배포 하려면 Entity Framework Code First 마이그레이션을 사용 하는 방법을 보여 줍니다.That tutorial also shows how to use Entity Framework Code First Migrations to deploy your SQL Server database to Azure SQL Database.

이 자습서에 사용 되는 소프트웨어 버전Software versions used in the tutorial

  • Microsoft Visual Studio 2017 또는 Microsoft Visual Studio Community 2017Microsoft Visual Studio 2017 or Microsoft Visual Studio Community 2017

이 자습서는 Visual Studio 2012와 Visual Studio 2013 에서도 작동 하지만 사용자 인터페이스 및 프로젝트 템플릿에서 약간의 차이가 있습니다.This tutorial also works with Visual Studio 2012 and Visual Studio 2013, but there are some differences in the user interface and project template.

만들 내용What you'll build

이 자습서에서는 다음을 수행 해야합니다.In this tutorial, you'll:

  • 대학의 학생 과정에 등록을 사용 하 여 반영 하는 데이터 개체 작성Build data objects that reflect a university with students enrolled in courses
  • 빌드 개체에서 데이터베이스 테이블Build database tables from the objects
  • 테스트 데이터로 데이터베이스를 채우는Populate the database with test data
  • 웹 폼에서 데이터를 표시 합니다.Display data in a web form

프로젝트를 만듭니다.Create the project

  1. Visual Studio 2017에서 만들기를 ASP.NET 웹 응용 프로그램 (.NET Framework) 라는 프로젝트 ContosoUniversityModelBinding합니다.In Visual Studio 2017, create a ASP.NET Web Application (.NET Framework) project called ContosoUniversityModelBinding.

    프로젝트 만들기

  2. 확인을 선택합니다.Select OK. 템플릿을 선택 하려면 대화 상자가 나타납니다.The dialog box to select a template appears.

    web forms를 선택 합니다.

  3. 선택 된 Web Forms 템플릿.Select the Web Forms template.

  4. 필요한 경우 변경에 대 한 인증 개별 사용자 계정합니다.If necessary, change the authentication to Individual User Accounts.

  5. 확인을 선택하여 프로젝트를 만듭니다.Select OK to create the project.

사이트 모양 수정Modify site appearance

사이트 모양을 사용자 지정 하는 몇 가지 변경 합니다.Make a few changes to customize site appearance.

  1. Site.Master 파일을 엽니다.Open the Site.Master file.

  2. 표시할 제목을 변경할 Contoso University 아니라 내 ASP.NET 응용 프로그램합니다.Change the title to display Contoso University and not My ASP.NET Application.

    <title><%: Page.Title %> - Contoso University</title>
    
  3. 머리글 텍스트를 변경 응용 프로그램 이름Contoso University합니다.Change the header text from Application name to Contoso University.

    <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" runat="server" href="~/">Contoso University</a>
    </div>
    
  4. 적절 하 게 사이트 탐색 헤더 링크를 변경 합니다.Change the navigation header links to site appropriate ones.

    에 대 한 링크를 제거 에 대 한연락처 하 고, 대신에 연결을 학생 페이지를 만듭니다.Remove the links for About and Contact and, instead, link to a Students page, which you will create.

    <ul class="nav navbar-nav">
        <li><a runat="server" href="~/">Home</a></li>
        <li><a runat="server" href="~/Students">Students</a></li>
    </ul>
    
  5. Save Site.Master.Save Site.Master.

학생 데이터를 표시 하는 web form 추가Add a web form to display student data

  1. 솔루션 탐색기프로젝트를 마우스 오른쪽 단추로 클릭, 선택 추가 차례로 새 항목합니다.In Solution Explorer, right-click your project, select Add and then New Item.

  2. 새 항목 추가 대화 상자를 선택 합니다 웹 폼 마스터 페이지를 사용 하 여 템플릿 하 고 이름을 Students.aspx합니다.In the Add New Item dialog box, select the Web Form with Master Page template and name it Students.aspx.

    페이지 만들기

  3. 추가를 선택합니다.Select Add.

  4. 웹 폼 마스터 페이지 선택 Site.Master합니다.For the web form's master page, select Site.Master.

  5. 확인을 선택합니다.Select OK.

데이터 모델 추가Add the data model

모델 폴더를 라는 클래스를 추가 UniversityModels.cs합니다.In the Models folder, add a class named UniversityModels.cs.

  1. 마우스 오른쪽 단추로 클릭 모델를 선택 추가를 차례로 새 항목합니다.Right-click Models, select Add, and then New Item. 새 항목 추가 대화 상자가 나타납니다.The Add New Item dialog box appears.

  2. 왼쪽된 탐색 메뉴에서 선택 코드, 한 다음 클래스합니다.From the left navigation menu, select Code, then Class.

    모델 클래스 만들기

  3. 클래스의 이름을 UniversityModels.cs 선택한 추가합니다.Name the class UniversityModels.cs and select Add.

    이 파일에 정의 된 SchoolContext, Student, Enrollment, 및 Course 다음과 같이 클래스:In this file, define the SchoolContext, Student, Enrollment, and Course classes as follows:

    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.ComponentModel.DataAnnotations;
    
    namespace ContosoUniversityModelBinding.Models
    {
        public class SchoolContext : DbContext
        {
            public DbSet<Student> Students { get; set; }
            public DbSet<Enrollment> Enrollments { get; set; }
            public DbSet<Course> Courses { get; set; }
        }
    
        public class Student
        {
            [Key, Display(Name = "ID")]
            [ScaffoldColumn(false)]
            public int StudentID { get; set; }
    
            [Required, StringLength(40), Display(Name="Last Name")]
            public string LastName { get; set; }
    
            [Required, StringLength(20), Display(Name = "First Name")]
            public string FirstName { get; set; }
    
            [EnumDataType(typeof(AcademicYear)), Display(Name = "Academic Year")]
            public AcademicYear Year { get; set; }
    
            public virtual ICollection<Enrollment> Enrollments { get; set; }
        }
    
        public class Enrollment
        {
            [Key]
            public int EnrollmentID { get; set; }
            public int CourseID { get; set; }
            public int StudentID { get; set; }
            public decimal? Grade { get; set; }
            public virtual Course Course { get; set; }
            public virtual Student Student { get; set; }
        }
    
        public class Course
        {
            [Key]
            public int CourseID { get; set; }
            public string Title { get; set; }
            public int Credits { get; set; }
            public virtual ICollection<Enrollment> Enrollments { get; set; }
        } 
    
        public enum AcademicYear
        {
            Freshman,
            Sophomore,
            Junior,
            Senior
        }
    }
    

    합니다 SchoolContext 클래스에서 파생 되며 DbContext, 데이터베이스 연결을 관리 하며 데이터의 변경 합니다.The SchoolContext class derives from DbContext, which manages the database connection and changes in the data.

    Student 클래스에 적용 되는 특성을 확인할 수 있습니다 합니다 FirstName, LastName, 및 Year 속성입니다.In the Student class, notice the attributes applied to the FirstName, LastName, and Year properties. 이 자습서에서는 데이터 유효성 검사에 대 한 이러한 특성을 사용 합니다.This tutorial uses these attributes for data validation. 코드 단순화 하기 위해, 데이터 유효성 검사 특성을 사용 하 여 이러한 속성만 표시 됩니다.To simplify the code, only these properties are marked with data-validation attributes. 실제 프로젝트에서 유효성 검사 특성 유효성 검사를 필요로 하는 모든 속성에 적용 합니다.In a real project, you would apply validation attributes to all properties needing validation.

  4. Save UniversityModels.cs.Save UniversityModels.cs.

클래스를 기반으로 데이터베이스를 설정Set up the database based on classes

이 자습서에서는 Code First 마이그레이션을 개체를 만들고 데이터베이스 테이블입니다.This tutorial uses Code First Migrations to create objects and database tables. 이러한 테이블 학생 및 해당 과정에 대 한 정보를 저장합니다.These tables store information about the students and their courses.

  1. 선택 도구가 > NuGet 패키지 관리자 > 패키지 관리자 콘솔합니다.Select Tools > NuGet Package Manager > Package Manager Console.

  2. 패키지 관리자 콘솔,이 명령을 실행 합니다.In Package Manager Console, run this command:
    enable-migrations -ContextTypeName ContosoUniversityModelBinding.Models.SchoolContext

    명령을 성공적으로 완료 되 면 마이그레이션을 사용할 수 있게 되었다는 메시지가 표시 됩니다.If the command completes successfully, a message stating migrations have been enabled appears.

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

    이라는 파일이 되었다는 Configuration.cs 만들었습니다.Notice that a file named Configuration.cs has been created. 합니다 Configuration 클래스에는 Seed 메서드를 테스트 데이터를 사용 하 여 데이터베이스 테이블을 미리 채울 수 있습니다.The Configuration class has a Seed method, which can pre-populate the database tables with test data.

데이터베이스를 미리 채우기Pre-populate the database

  1. Configuration.cs를 엽니다.Open Configuration.cs.

  2. Seed 메서드에 다음 코드를 추가합니다.Add the following code to the Seed method. 또한 추가 using 에 대 한 문의 ContosoUniversityModelBinding. Models 네임 스페이스입니다.Also, add a using statement for the ContosoUniversityModelBinding. Models namespace.

    namespace ContosoUniversityModelBinding.Migrations
    {
        using System;
        using System.Data.Entity;
        using System.Data.Entity.Migrations;
        using System.Linq;
        using ContosoUniversityModelBinding.Models;
    
        internal sealed class Configuration : DbMigrationsConfiguration<SchoolContext>
        {
            public Configuration()
            {
                AutomaticMigrationsEnabled = false;
            }
    
            protected override void Seed(SchoolContext context)
            {
    
                context.Students.AddOrUpdate(
                     new Student { 
                         FirstName = "Carson", 
                         LastName = "Alexander", 
                         Year = AcademicYear.Freshman },
                     new Student { 
                         FirstName = "Meredith", 
                         LastName = "Alonso", 
                         Year = AcademicYear.Freshman },
                     new Student { 
                         FirstName = "Arturo", 
                         LastName = "Anand", 
                         Year = AcademicYear.Sophomore },
                     new Student { 
                         FirstName = "Gytis", 
                         LastName = "Barzdukas", 
                         Year = AcademicYear.Sophomore },
                     new Student { 
                         FirstName = "Yan", 
                         LastName = "Li", 
                         Year = AcademicYear.Junior },
                     new Student { 
                         FirstName = "Peggy", 
                         LastName = "Justice", 
                         Year = AcademicYear.Junior },
                     new Student { 
                         FirstName = "Laura", 
                         LastName = "Norman", 
                         Year = AcademicYear.Senior },
                     new Student { 
                         FirstName = "Nino", 
                         LastName = "Olivetto", 
                         Year = AcademicYear.Senior }
                     );
    
                context.SaveChanges();
    
                context.Courses.AddOrUpdate(
                    new Course { Title = "Chemistry", Credits = 3 },
                    new Course { Title = "Microeconomics", Credits = 3 },
                    new Course { Title = "Macroeconomics", Credits = 3 },
                    new Course { Title = "Calculus", Credits = 4 },
                    new Course { Title = "Trigonometry", Credits = 4 },
                    new Course { Title = "Composition", Credits = 3 },
                    new Course { Title = "Literature", Credits = 4 }
                    );
    
                context.SaveChanges();
    
                context.Enrollments.AddOrUpdate(
                    new Enrollment { StudentID = 1, CourseID = 1, Grade = 1 },
                    new Enrollment { StudentID = 1, CourseID = 2, Grade = 3 },
                    new Enrollment { StudentID = 1, CourseID = 3, Grade = 1 },
                    new Enrollment { StudentID = 2, CourseID = 4, Grade = 2 },
                    new Enrollment { StudentID = 2, CourseID = 5, Grade = 4 },
                    new Enrollment { StudentID = 2, CourseID = 6, Grade = 4 },
                    new Enrollment { StudentID = 3, CourseID = 1 },
                    new Enrollment { StudentID = 4, CourseID = 1 },
                    new Enrollment { StudentID = 4, CourseID = 2, Grade = 4 },
                    new Enrollment { StudentID = 5, CourseID = 3, Grade = 3 },
                    new Enrollment { StudentID = 6, CourseID = 4 },
                    new Enrollment { StudentID = 7, CourseID = 5, Grade = 2 }
                    );
    
                context.SaveChanges();
            }
        }
    }
    
  3. Configuration.cs를 저장 합니다.Save Configuration.cs.

  4. 패키지 관리자 콘솔에서 명령을 실행 추가 마이그레이션 초기합니다.In the Package Manager Console, run the command add-migration initial.

  5. 명령을 실행 데이터베이스 업데이트합니다.Run the command update-database.

    이 명령을 실행 하는 경우 예외를 수신 하는 경우는 StudentID 하 고 CourseID 값이 다를 수 있습니다는 Seed 메서드 값입니다.If you receive an exception when running this command, the StudentID and CourseID values might be different from the Seed method values. 에 대 한 기존 값을 찾고 해당 데이터베이스 테이블을 엽니다 StudentIDCourseID입니다.Open those database tables and find existing values for StudentID and CourseID. 시드를 위해 코드에 해당 값을 추가 합니다 Enrollments 테이블입니다.Add those values to the code for seeding the Enrollments table.

GridView 컨트롤을 추가 합니다.Add a GridView control

채워진된 데이터베이스 데이터를 사용 하 여 이제 해당 데이터를 검색 하 고이 표시 합니다.With populated database data, you're now ready to retrieve that data and display it.

  1. Students.aspx를 엽니다.Open Students.aspx.

  2. 찾을 MainContent 자리 표시자입니다.Locate the MainContent placeholder. 자리 표시자를 추가 된 GridView 이 코드를 포함 하는 컨트롤입니다.Within that placeholder, add a GridView control that includes this code.

    <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
        <asp:GridView runat="server" ID="studentsGrid"
            ItemType="ContosoUniversityModelBinding.Models.Student" DataKeyNames="StudentID" 
            SelectMethod="studentsGrid_GetData"
            AutoGenerateColumns="false">
            <Columns>
                <asp:DynamicField DataField="StudentID" />
                <asp:DynamicField DataField="LastName" />
                <asp:DynamicField DataField="FirstName" />
                <asp:DynamicField DataField="Year" />          
                <asp:TemplateField HeaderText="Total Credits">
                  <ItemTemplate>
                    <asp:Label Text="<%# Item.Enrollments.Sum(en => en.Course.Credits) %>" 
                        runat="server" />
                  </ItemTemplate>
                </asp:TemplateField>        
            </Columns>
        </asp:GridView>
    </asp:Content>
    

    유의 사항은 다음과 같습니다.Things to note:

    • 값이 설정에 대 한 공지를 SelectMethod GridView 요소의 속성입니다.Notice the value set for the SelectMethod property in the GridView element. 이 값에는 다음 단계에서 만든 GridView 데이터를 검색 하는 데 사용 하는 메서드를 지정 합니다.This value specifies the method used to retrieve GridView data, which you create in the next step.

    • 합니다 ItemType 속성을 Student 앞에서 만든 클래스입니다.The ItemType property is set to the Student class created earlier. 이 설정을 통해 태그에 대 한 클래스 속성을 참조할 수 있습니다.This setting allows you to reference class properties in the markup. 예를 들어, 합니다 Student 클래스에는 명명 된 컬렉션이 Enrollments합니다.For example, the Student class has a collection named Enrollments. 사용할 수 있습니다 Item.Enrollments 해당 컬렉션을 검색 한 다음 사용 하 LINQ 구문 의 각 학생 검색할 크레딧 합계 등록 합니다.You can use Item.Enrollments to retrieve that collection and then use LINQ syntax to retrieve each student's enrolled credits sum.

  3. Students.aspx를 저장 합니다.Save Students.aspx.

데이터를 검색 하는 코드를 추가 합니다.Add code to retrieve data

Students.aspx 코드 숨김 파일에서에 대 한 지정 된 메서드를 추가 합니다 SelectMethod 값입니다.In the Students.aspx code-behind file, add the method specified for the SelectMethod value.

  1. Students.aspx.cs를 엽니다.Open Students.aspx.cs.

  2. 추가 using 에 대 한 문을 합니다 ContosoUniversityModelBinding. ModelsSystem.Data.Entity 네임 스페이스입니다.Add using statements for the ContosoUniversityModelBinding. Models and System.Data.Entity namespaces.

    using ContosoUniversityModelBinding.Models;
    using System.Data.Entity;
    
  3. 에 대 한 지정 된 메서드를 추가 SelectMethod:Add the method you specified for SelectMethod:

    public IQueryable<Student> studentsGrid_GetData()
    {
        SchoolContext db = new SchoolContext();
        var query = db.Students.Include(s => s.Enrollments.Select(e => e.Course));
        return query;
    }
    

    Include 절 쿼리 성능이 향상 되지만 필요 하지 않습니다.The Include clause improves query performance but isn't required. 없이 합니다 Include 절에서 데이터를 사용 하 여 검색 됩니다 지연 로드, 데이터를 검색 하는 관련 된 될 때마다 데이터베이스에 별도 쿼리를 전송 포함 됩니다.Without the Include clause, the data is retrieved using lazy loading, which involves sending a separate query to the database each time related data is retrieved. 사용 하 여는 Include 절에서 데이터를 사용 하 여 검색 됩니다 선행 로딩과, 즉, 단일 데이터베이스 쿼리를 관련 된 모든 데이터를 검색 합니다.With the Include clause, data is retrieved using eager loading, which means a single database query retrieves all related data. 관련된 데이터를 사용 하지 않는 경우 더 많은 데이터 검색 되기 때문에 선행 로딩과 덜 효율적입니다.If related data isn't used, eager loading is less efficient because more data is retrieved. 그러나이 경우 즉시 로드 하면 최상의 성능을 각 레코드에 대 한 관련된 데이터 표시 되기 때문입니다.However, in this case, eager loading gives you the best performance because the related data is displayed for each record.

    로드 시 성능 고려 사항에 대 한 자세한 내용은 관련 데이터에 대 한 참조를 지연, 즉시, 및 관련 데이터의 명시적 로드 섹션을 ASP.NET에서 Entity Framework를 사용 하 여 관련 데이터 읽기 MVC 응용 프로그램 문서.For more information about performance considerations when loading related data, see the Lazy, Eager, and Explicit Loading of Related Data section in the Reading Related Data with the Entity Framework in an ASP.NET MVC Application article.

    기본적으로 데이터를 키로 표시 된 속성의 값을 기준으로 정렬 됩니다.By default, the data is sorted by the values of the property marked as the key. 추가할 수 있습니다는 OrderBy 절 다른 정렬 값을 지정 합니다.You can add an OrderBy clause to specify a different sort value. 이 예제에서는 기본 StudentID 속성은 정렬에 사용 됩니다.In this example, the default StudentID property is used for sorting. 정렬, 페이징 및 필터링 데이터 사용자 문서에서는 정렬할 열을 선택 수입니다.In the Sorting, Paging, and Filtering Data article, the user is enabled to select a column for sorting.

  4. Students.aspx.cs를 저장 합니다.Save Students.aspx.cs.

응용 프로그램 실행Run your application

웹 응용 프로그램을 실행 (F5)로 이동 합니다 학생 페이지에서 다음을 표시 하는:Run your web application (F5) and navigate to the Students page, which displays the following:

데이터를 표시 합니다.

모델 바인딩 메서드를 자동으로 생성Automatic generation of model binding methods

이 자습서 시리즈를 진행할 때 프로젝트에 자습서에서 코드를 단순히 복사할 수 있습니다.When working through this tutorial series, you can simply copy the code from the tutorial to your project. 그러나 하나이 방식의 단점은 없게 되어 자동으로 코드를 생성할 모델 바인딩 메서드는 Visual Studio에서 제공 하는 기능을 인식 합니다.However, one disadvantage of this approach is that you may not become aware of the feature provided by Visual Studio to automatically generate code for model binding methods. 사용자 고유의 프로젝트를 사용할 때 자동 코드 생성 및 저장할 수 있습니다 시간 도움말 작업을 구현 하는 방법의 이해를 얻을 수 있습니다.When working on your own projects, automatic code generation can save you time and help you gain a sense of how to implement an operation. 이 섹션에서는 자동 코드 생성 기능을 설명 합니다.This section describes the automatic code generation feature. 이 섹션에서는 정보 제공 용 이므로 전용 이며 프로젝트에서 구현 해야 할 코드는 포함 하지 않습니다.This section is only informational and does not contain any code you need to implement in your project.

에 대 한 값을 설정 하는 경우는 SelectMethod, UpdateMethod, InsertMethod, 또는 DeleteMethod 태그 코드에서 속성을 선택할 수 있습니다 합니다 새 메서드 만들기 옵션입니다.When setting a value for the SelectMethod, UpdateMethod, InsertMethod, or DeleteMethod properties in the markup code, you can select the Create New Method option.

메서드 만들기

Visual Studio는 적절 한 서명 사용 하 여 코드 숨김의 메서드를 만듭니다 뿐 아니라도 작업을 수행 하기 위한 구현 코드를 생성 합니다.Visual Studio not only creates a method in the code-behind with the proper signature, but also generates implementation code to perform the operation. 먼저 설정 하는 경우는 ItemType 자동 코드 생성을 사용 하기 전에 속성 기능을 작업에 대 한 생성 된 코드는 형식입니다.If you first set the ItemType property before using the automatic code generation feature, the generated code uses that type for the operations. 예를 들어, 설정 하는 경우는 UpdateMethod 속성을 다음 코드를 자동으로 생성 됩니다.For example, when setting the UpdateMethod property, the following code is automatically generated:

// The id parameter name should match the DataKeyNames value set on the control
public void studentsGrid_UpdateItem(int id)
{
    ContosoUniversityModelBinding.Models.Student item = null;
    // Load the item here, e.g. item = MyDataLayer.Find(id);
    if (item == null)
    {
        // The item wasn't found
        ModelState.AddModelError("", String.Format("Item with id {0} was not found", id));
        return;
    }
    TryUpdateModel(item);
    if (ModelState.IsValid)
    {
        // Save changes here, e.g. MyDataLayer.SaveChanges();

    }
}

마찬가지로이 코드는 프로젝트에 추가할 필요가 없습니다.Again, this code doesn't need to be added to your project. 다음 자습서에서는 업데이트, 삭제 및 새 데이터를 추가 하기 위한 메서드를 구현 합니다.In the next tutorial, you'll implement methods for updating, deleting, and adding new data.

요약Summary

이 자습서에서는 데이터 모델 클래스를 생성 하 고 해당 클래스에서 데이터베이스를 생성 합니다.In this tutorial, you created data model classes and generated a database from those classes. 테스트 데이터를 사용 하 여 데이터베이스 테이블을 입력 합니다.You filled the database tables with test data. 데이터베이스에서 데이터를 검색할 모델 바인딩을 사용 하 고 GridView에 데이터를 표시 합니다.You used model binding to retrieve data from the database, and then displayed the data in a GridView.

다음에 자습서 이 시리즈에서는 업데이트, 삭제 및 만드는 데이터를 사용 하겠습니다.In the next tutorial in this series, you'll enable updating, deleting, and creating data.