>  기사  >  백엔드 개발  >  엔터티 프레임워크 C#

엔터티 프레임워크 C#

王林
王林원래의
2024-09-03 15:20:001087검색

다음 문서에서는 Entity Framework C#에 대한 개요를 제공합니다. Entity Framework는 응용 프로그램에서 중복되는 작업을 제거하여 사용자의 응용 프로그램 생산성을 향상시키는 데 도움이 되는 ORM(개체 관계형 매핑)입니다. EF는 DB에 데이터를 쓰거나 읽는 데 필요한 DB Command를 구축하고 완벽하게 실행합니다. 마지막으로 EF는 DB에서 쿼리를 실행하고 그 결과를 애플리케이션과 연동할 수 있는 도메인 개체로 만듭니다.

C#의 Entity Framework란 무엇인가요?

Entity Framework는 .Net 애플리케이션용 개체-소스 관계형 매핑(ORM) 프레임워크로, 개발자가 데이터베이스의 열과 테이블에 대한 지식 없이 도메인별 개체를 사용하여 관계형 데이터 작업을 수행할 수 있도록 해줍니다. 데이터가 저장됩니다. 또한 개발자가 일반적으로 작성하는 데이터 액세스 코드를 Entity Framework가 최소화하는 것으로 묘사됩니다.

C# 프로젝트의 엔터티 프레임워크

Department 테이블과 Employee 테이블이 테이블에 여러 부서의 기록과 다양한 부서의 직원의 기록이 포함되어 있다고 가정해 보겠습니다.

이를 달성하려면 Department 및 Employee 클래스를 구축해야 합니다. 그런 다음 데이터베이스에서 해당 데이터를 검색하려면 ADO.NET을 코딩해야 합니다. 마지막으로 데이터가 검색되면 Employee 및 Department 개체를 생성하여 복구된 데이터로 채워야 합니다.
위의 모든 작업은 지루하지만 Entity Framework를 사용하면 쉽습니다. 이러한 작업은 자동으로 수행될 수 있습니다. EF에 DB 스키마를 제공해야 합니다. EF를 사용하여 애플리케이션을 생성하려면 다음 단계를 살펴보겠습니다.

데이터베이스 스키마를 생성하려면 SQL 스크립트를 사용하여 EF_Demo_DB 데이터베이스를 생성하고 직원 및 부서 테이블도 생성하세요

코드:

-- to create the Database EF_Demo_DB
CREATE DATABASE EF_Demo_DB;
GO
-- Use EF_Demo_DB database
USE EF_Demo_DB;
GO
-- to Create the table Departments
CREATE TABLE Departments
(
ID INT PRIMARY KEY IDENTITY(1,1),
Name VARCHAR(50),
Location VARCHAR(50)
)
Go
-- to Create the table Employees
CREATE TABLE Employees
(
ID INT PRIMARY KEY IDENTITY(1,1),
Name VARCHAR(50),
Email VARCHAR(50),
Gender VARCHAR(50),
Salary INT,
DepartmentId INT FOREIGN KEY REFERENCES Departments(ID)
)
Go
-- --to Populate the table with few records
INSERT INTO Departments VALUES ('HR', 'Bangalore')
INSERT INTO Departments VALUES ('Sales', 'Cochin')
INSERT INTO Departments VALUES ('IT', 'Chennai')
Go
--to Populate the table with few records
INSERT INTO Employees VALUES ('Philip', '[email protected]', 'Male', 45000, 2)
INSERT INTO Employees VALUES ('Mary', '[email protected]', 'Female', 30000, 2)
INSERT INTO Employees VALUES ('Valarie', '[email protected]', 'Female', 35000, 3)
INSERT INTO Employees VALUES ('John', '[email protected]', 'Male', 80000, 1)
INSERT INTO Employees VALUES ('Joseph', 'jojog.com', 'Male', 60000, 1)
INSERT INTO Employees VALUES ('Steve', '[email protected]', 'Male', 45000, 3)
INSERT INTO Employees VALUES ('Peter', '[email protected]', 'Male', 60000, 1)
INSERT INTO Employees VALUES ('Rio', '[email protected]', 'Female', 345000, 3)
INSERT INTO Employees VALUES ('Ben', '[email protected]', 'Male', 70000, 1)
Go

콘솔 애플리케이션 생성

데이터가 준비되면 아래와 같이 EFDemo라는 이름으로 새 콘솔 애플리케이션을 만듭니다.

엔터티 프레임워크 C#

ADO.NET 엔터티 데이터 모델을 추가하려면

콘솔 애플리케이션을 생성하려면 ADO.NET 엔터티 데이터 모델을 추가하고 프로젝트를 마우스 오른쪽 버튼으로 클릭한 후 Add -New Item-Data- ADO.NET 엔터티 데이터 모델을 클릭하고 아래와 같이 이름을 EmployeeDataModel로 지정합니다.

엔터티 프레임워크 C#

추가 버튼을 클릭한 후 데이터베이스에서 EF Designer를 선택하고 아래와 같이 다음 버튼을 클릭하여 데이터베이스에서 EF Designer를 선택합니다. 여기서는 EF Database First Approach를 사용하고 있습니다.

엔터티 프레임워크 C#

다음 버튼을 클릭하면 그림과 같이 데이터 연결 마법사를 선택하라는 메시지가 표시됩니다. 새 연결 버튼을 클릭하세요.

엔터티 프레임워크 C#

새 연결 버튼을 클릭한 후 필요한 데이터베이스 세부 정보를 제공하고 마지막으로 "연결 테스트"를 선택한 후 확인을 클릭하세요.

엔터티 프레임워크 C#

데이터 연결을 선택하고 엔터티 연결 설정을 앱에 저장합니다. 그런 다음 아래와 같이 구성하고 이름을 EF_Demo_DBEntities로 지정한 후 다음 버튼을 클릭하세요.

엔터티 프레임워크 C#

여기에서는 표시된 대로 Entity Framework 6.x를 선택하고 다음 버튼을 선택하라는 메시지가 표시됩니다.

엔터티 프레임워크 C#

원하는 테이블을 선택하고 모델 네임스페이스를 “EmployeeModel”로 변경한 후 그림과 같이 마침 버튼을 클릭하세요.

엔터티 프레임워크 C#

마침 버튼을 클릭하면 EmployeeDataModel.edmx 파일이 생성됩니다.

엔터티 프레임워크 C#

아래 그림과 같은 EDMX 파일의 구조입니다,

엔터티 프레임워크 C#

EF를 이용하여 애플리케이션을 만들었습니다.

코드:

namespace EFDemo
{
class Program
{
static void Main(string[] args)
{
using (EF_Demo_DBEntities DBEntities = new EF_Demo_DBEntities())
{
List<Department> listDepartments = DBEntities.Departments.ToList();
Console.WriteLine();
foreach (Department dept in listDepartments)
{
Console.WriteLine(" Department = {0}, Location = {1}", dept.Name, dept.Location);
foreach (Employee emp in dept.Employees)
{
Console.WriteLine("\t Name = {0}, Email = {1}, Gender = {2}, salary = {3}",
emp.Name, emp.Email, emp.Gender, emp.Salary);
}
Console.WriteLine();
}
Console.ReadKey();
}
}
}
}

데이터베이스 모드 및 클래스

엔티티 프레임워크 기능:

Entity Framework의 기능을 살펴보겠습니다.

  • 모델링: EF는 다양한 데이터 유형의 get/set 속성을 사용하여 속성을 기반으로 EDM을 구축합니다. 엔터티 데이터를 데이터베이스에 저장하거나 쿼리하는 경우 모델을 사용합니다.
  • 쿼리: Entity Framework를 사용하면 LINQ 쿼리를 통해 데이터베이스에서 데이터를 가져올 수 있습니다. DB 공급자는 LINQ의 쿼리를 DB 관련 쿼리 언어로 변환합니다. EF를 사용하면 DB에 대한 SQL 쿼리를 실행할 수 있습니다.
  • 변경 추적: Entity Framework는 DB에 제출해야 하는 속성 값의 경우에 발생한 변경 사항을 추적합니다.
  • 저장: Entity Framework는 SaveChanges() 메서드를 호출하는 동안 엔터티 수정을 기반으로 데이터베이스에 대한 INSERT, DELETE 및 UPDATE 명령을 실행합니다. 또한 엔터티 프레임워크 EF는 SaveChangesAsync() 메서드를 제공합니다.
  • 동시성: Entity Framework는 DB에서 데이터를 가져온 이후 다른 사용자를 통한 변경 사항을 보호하기 위해 기본적으로 낙관적 동시성을 사용합니다.
  • 캐싱: Entity Framework에는 기본적으로 초기 캐싱 수준이 포함되어 있습니다. 따라서 쿼리는 DB에 도달하는 대신 캐시에서 데이터를 반환합니다.
  • 구성: Entity Framework를 사용하면 데이터 주석 특성 또는 API를 사용하여 EF 모델을 구성하여 기본적으로 규칙을 재정의할 수 있습니다.
  • 내장 규칙: Entity Framework는 프로그래밍 구성 패턴을 통해 규칙을 따르며 EF 모델을 자동으로 구성하는 기본 규칙을 포함합니다.

결론

이 글에서는 EF의 기능과 Entity Framework를 만드는 방법을 살펴보았습니다. 그러나 ADO.NET 코드를 사용하는 것은 EF와 비교할 때 지루합니다. 또한 시간이 많이 걸리고 오류가 발생하기 쉬운 프로세스이므로 Microsoft에서는 애플리케이션의 전체 DB 관련 작업을 자동화하기 위해 Entity Framework라는 프레임워크를 제공합니다.

위 내용은 엔터티 프레임워크 C#의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.