Entity Framework

  • 4 minutes to read

EF 4.X 강의 소스는 다음 경로에 있습니다.

Entity Framework 소개

Entity Framework (EF)는 .NET Framework에서 데이터 액세스를 쉽게 만들어 주는 ORM (Object-Relational Mapping) 도구입니다. .NET Framework 4.X 버전에서 사용되는 EF 버전은 주로 EF 6.x입니다. 이 강좌에서는 EF 6.x를 사용하여 기본적인 CRUD (Create, Read, Update, Delete) 작업을 수행하는 방법에 대해 설명하겠습니다.

1. 프로젝트 설정 및 Entity Framework 설치

  1. Visual Studio를 열고 새 프로젝트 생성을 클릭합니다.
  2. 'C#'에서 Windows를 선택한 다음 'Console App (.NET Framework)'을 선택합니다.
  3. 프로젝트 이름을 입력하고 생성을 클릭합니다.
  4. 프로젝트가 생성되면, NuGet 패키지 관리자를 사용하여 Entity Framework을 설치합니다. 이를 위해 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 선택한 다음 EntityFramework를 검색하여 설치합니다.

2. 데이터 모델 생성

Entity Framework에서는 데이터베이스 테이블을 반영하는 클래스를 만들어야 합니다. 예를 들어, Student라는 클래스를 만들어 학생 정보를 저장하는 테이블을 관리할 수 있습니다.

public class Student
{
    public int StudentID { get; set; }
    public string StudentName { get; set; }
    public DateTime DateOfBirth { get; set; }
    // 다른 속성들...
}

3. DbContext 클래스 생성

DbContext 클래스는 EF에서 데이터베이스와의 작업을 코디네이트하는 주요 클래스입니다. 이 클래스는 모델 클래스의 인스턴스를 관리하고 데이터베이스와의 모든 상호 작용을 처리합니다.

public class SchoolContext : DbContext
{
    public SchoolContext() : base("SchoolDBConnectionString")
    {
    }

    public DbSet<Student> Students { get; set; }
    // 다른 DbSet 속성들...
}

여기서 "SchoolDBConnectionString"App.config 또는 Web.config 파일에 정의된 데이터베이스 연결 문자열의 이름입니다.

4. 데이터베이스 연결 설정

App.config 파일에 데이터베이스 연결 문자열을 추가합니다. SQL Server를 사용한다고 가정하면, 연결 문자열은 다음과 같을 수 있습니다.

<connectionStrings>
    <add name="SchoolDBConnectionString"
         connectionString="data source=.;initial catalog=SchoolDB;integrated security=True;"
         providerName="System.Data.SqlClient" />
</connectionStrings>

5. 데이터베이스 마이그레이션 및 초기화

EF6에서는 Code First Migrations를 사용하여 데이터베이스 스키마를 관리할 수 있습니다. Package Manager Console에서 다음 명령을 실행합니다:

  1. enable-migrations - 마이그레이션을 활성화합니다.
  2. add-migration InitialCreate - 초기 마이그레이션을 생성합니다.
  3. update-database - 마이그레이션을 적용하여 데이터베이스를 생성 또는 업데이트합니다.

6. CRUD 작업

이제 기본적인 CRUD 작업을 수행하는 방법을 살펴보겠습니다.

생성 (Create)

using (var context = new SchoolContext())
{
    var student = new Student() { StudentName = "New Student", DateOfBirth = DateTime.Now };
    context.Students.Add(student);
    context.SaveChanges();
}

읽기 (Read)

using (var context = new SchoolContext())
{
    var students = context.Students.ToList();
    foreach (var student in students)
    {
        Console.WriteLine(student.StudentName);
    }
}

업데이트 (Update)

using (var context = new SchoolContext())
{
    var student = context.Students

.FirstOrDefault(s => s.StudentID == 1);
    if (student != null)
    {
        student.StudentName = "Updated Name";
        context.SaveChanges();
    }
}

삭제 (Delete)

using (var context = new SchoolContext())
{
    var student = context.Students.FirstOrDefault(s => s.StudentID == 1);
    if (student != null)
    {
        context.Students.Remove(student);
        context.SaveChanges();
    }
}

마무리

이 강좌에서는 Entity Framework 6.x의 기본적인 사용 방법을 다루었습니다. 실제 프로젝트에서는 데이터 모델의 복잡성, 데이터베이스 성능 요구 사항, 동시성 처리 등 추가적인 고려 사항들이 있을 수 있습니다. Entity Framework는 이러한 고급 주제들을 포괄적으로 다루는 다양한 기능과 설정을 제공합니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com